首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的条件不能在for循环中工作?

为什么我的条件不能在for循环中工作?
EN

Stack Overflow用户
提问于 2020-11-08 02:55:25
回答 1查看 32关注 0票数 0

任务是从用户那里获取星星的数量,然后将其打印为反向金字塔。

数字必须是从0到11的奇数。无论给定什么条件,它总是打印11颗星并忽略条件

代码语言:javascript
复制
stars = int(input("Put the odd number of stars\n"))
space = 0
for stars in range(11, 0, -2):
    if stars > 11 and stars < 1 and (stars % 2 != 0):
        print("wrong number")
print(space * " " + stars * '*')
space = space + 1
print("")
EN

回答 1

Stack Overflow用户

发布于 2020-11-08 03:06:32

你的测试不应该在循环中,它应该紧跟在输入之后。而且您需要使用or,而不是and,因此如果任一检查为真,它都将成功。为了禁止偶数,模数测试应该是== 0

然后,您需要为输入使用与循环迭代变量不同的变量,并使用输入数字作为range()函数的起点,而不是硬编码11。

代码语言:javascript
复制
while True:
    number = int(input("Put the odd number of stars\n"))
    if number > 11 or number < 1 or (number % 2 == 0):
        print("wrong number")
    else:
        break

space = 0
for stars in range(number, 0, -2):
    print(space * " " + stars * '*')
    space = space + 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64731291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档