python - python for循环不会改变值
问题描述
所以我是python的新手,这个问题对这里的任何人来说都应该是相当容易的,除了我很明显哈哈,所以这是我的代码
for c in range(0,20):
print("number",c+1)
number = input ("Enter number:\n")
number = int(number)
if (number < 1 or number > 9):
print("try again by inputing a positive number < 10")
c -=1
所以你可能会想,如果有人输入的数字大于 9 或小于 0,我只想让我的 c 保持在原位,所以我从 1-9 中得到 20 个正数,但它并没有这样做,而且它一直在增加,即使我有 c-=1 的东西在那里
解决方案
首先,不要使用 range(0,20) 而是使用 range(20) 。
其次,范围返回一个迭代器。这意味着,当您执行 c-=1 时,您不会返回迭代器,而是减少迭代器返回的数字。这意味着如果 c=5 并且您在 input 中输入的数字是 20,c 将变为 4,但是当返回到循环的开头时,c 将变为 6。
你可能想要这样的东西:
c = 0
while c < 20:
print("number",c+1)
number = input ("Enter number:\n")
number = int(number)
if (number < 1 or number > 9):
print("try again by inputing a positive number < 10")
continue
c += 1
推荐阅读
- fuzzy-logic - 模糊逻辑中的混乱 tsukamoto
- python - 如何在 python 中使用数据框的一些列绘制箱线图
- java - AWS Secrets Manager 使用 AWS-SDK Java 更新密钥请求
- kotlin - 模拟异常 - 没有找到答案
- shopify - 如何在shopify网站上进行自动登录?
- excel - 如果系列中的值大于 1000000,则使用宏调整图表的 y 轴
- amazon-web-services - 如何在上传开始和完成时收到通知
- php - PHP:从 IntelliJ 中的接口生成实现
- cassandra - 启动用户态代理时出错:listen tcp 0.0.0.0:9042: bind: address already in use'
- rest - 在 Spring Mvc 中会是什么..?