Python 如何在加法循环中只打印奇数?

Python 如何在加法循环中只打印奇数?,python,Python,我对编程非常陌生,只是做了一个加法循环,一旦给出了年龄,它将从一开始计数,直到达到用户的年龄(例如,如果我说我15岁,计算机将从一开始计数,直到达到15岁) 我目前的目标是尝试让它只打印奇数或偶数,直到它达到年龄。如果年龄是奇数,即使年龄是偶数 age = int(input("What is your age?: ")) count = 1 while count != age: print(count) count += 1 if count

我对编程非常陌生,只是做了一个加法循环,一旦给出了年龄,它将从一开始计数,直到达到用户的年龄(例如,如果我说我15岁,计算机将从一开始计数,直到达到15岁)

我目前的目标是尝试让它只打印奇数或偶数,直到它达到年龄。如果年龄是奇数,即使年龄是偶数

age = int(input("What is your age?: "))
count = 1

while count != age:
    print(count)
    count += 1

    if count == age:
        print(age)
        break
我一直在寻找如何只打印出这些数字的方法,但在列表之外我找不到任何有效的方法。我只是需要一些帮助来把它应用到这个程序中。我曾经写过这样的东西,但是我无法让它与这个特定的程序一起工作。我很难把它放进这个

if age % 2 != 0: 
       print(age, end = " ") 

部分原因可能是我太新了,无法做到这一点,我认为上面的代码只有在有列表可以查看的情况下才有效。非常感谢任何能让我找到正确方向的建议。

使用
2
将变量设置为
age
的模数。然后你可以把它和每个数字的模数进行比较

age = int(input("What is your age?: "))
age_mod = age % 2
for i in range(1, age+1):
    if i % 2 == age_mod:
        print(i)
另一种方法是按2计数,并根据年龄是奇数还是偶数设置起始数字

age = int(input("What is your age?: "))
if age % 2 == 0:
    start = 2
else:
    start = 1
for i in range(start, age+1, 2):
    print(i)
首先,阅读。这对程序员来说是一项至关重要的技能,你学习它的时间越早,你的生活就会越轻松

第二,当您在计数时执行
age
,在再次执行循环之前,它已经检查以确保
计数
不等于
age
。如果count==年龄:break,则不需要

第三,如果您只想在满足某个条件时打印,请将
print
放在相应的
if

第四,您要检查计数%2是否与年龄%2相同

最后,阅读Python中的值<代码>如果年龄为%2!=如果年龄为%2,则0
等同于写入

结合所有这些,我们有:

while count != age:
    if count % 2 == age % 2:
        print(count)
    count += 1

当然,有更有效的方法可以做到这一点:例如,你可以从奇数或偶数开始,这取决于你的年龄是奇数还是偶数,然后每次简单地按2计数。

如果我坚持你的代码版本,那么这可能行得通(你的问题是你选择了
age
而不是
count
):


祝你好运

您可以这样做:

首先检测年龄是否相等

如果是偶数,则使用If语句打印所有偶数计数

如果不是偶数,则打印所有不偶数的计数

age = int(input("What is your age?: "))
count = 1

for i in range(1, age):
    if(age % 2) == 0:
        if (count % 2) == 0:
            print(count)
        count +=1
    else:
        if(count % 2) != 0:
            print(count)
        count +=1

你必须做计数和打印计数的条件。通过两个列表理解创建两个列表只是为了打印出来?我不同意这是一个“更好的版本”,无论是在时间和记忆的复杂性方面。请随意发布您的版本。对于小程序,我认为它确实很重要,不需要两种列表理解:
ages=[str(item)for item in range(1,age+1,2)]
age = int(input("What is your age?: "))
ages = [*range(1, age+1, 2)]
ages = [str(item) for item in ages]
print ('\n'.join(ages))
age = int(input("What is your age?: "))
count = 1

for i in range(1, age):
    if(age % 2) == 0:
        if (count % 2) == 0:
            print(count)
        count +=1
    else:
        if(count % 2) != 0:
            print(count)
        count +=1