#python #list #for-loop #while-loop #numbers
Вопрос:
я хочу составить список нечетных чисел, используя «пока» и «для»
a = []
x = 1
while x < 101:
if x % 2 != 0:
a.append(x)
x = x 1
print(a)
но ничего не произошло… и другие несвязанные коды, которые есть в другом предложении, также не выполняются.
в чем моя проблема?
Комментарии:
1. Обратите внимание, что если вы начинаете с 1, вам нужно добавлять только 2 на каждом шаге, а не добавлять 1 и проверять, нечетное ли число.
2. Это опечатка с отступом. Они
x = x 1
должны быть согласованы сif
.
Ответ №1:
Вы должны увеличивать значение x
на каждой итерации, а не только в том случае, если значение нечетное число:
a = []
x = 1
while x < 101:
if x % 2 != 0:
a.append(x)
x = 1
print(a)
Хотя, вероятно, это делается в учебных целях, обратите внимание, что вы можете достичь этого range
с помощью следующей функции: list(range(1,101, 2))
.
Ответ №2:
Когда вы увеличиваете x, оно должно выходить из условия «если». приращение должно происходить в то время как
a = list()
x = 1
while x <101:
if x%2 != 0:
a.append(x)
x = 1
print(a)
Ответ №3:
Вы range
также можете использовать функцию (для for
цикла), которая обрабатывает часть приращения в цикле, как показано ниже:
ДЛЯ ПЕТЛИ:
odd=[]
for i in range(101):
if (i%2!=0):
odd.append(i)
print (odd)
В ТО ВРЕМЯ КАК ЦИКЛ:
odd=[]
i = 1
while i<101:
if i%2 != 0:
odd.append(i)
i =1
print (odd)
Ответ №4:
odd = [i for i in range(101) if i%2 != 0]
print(odd)
Комментарии:
1. Хотя это более короткое решение, вопрос специально задан для решения с использованием while и for.