Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用户输入变量在循环结束时的值不正确_Python_Loops_Input - Fatal编程技术网

Python 用户输入变量在循环结束时的值不正确

Python 用户输入变量在循环结束时的值不正确,python,loops,input,Python,Loops,Input,我是编程新手,我正在编写一个程序来查找用户输入的最小值和最大值 用户一次输入一个数字,最后输入“完成”。如果用户输入的不是“完成”的非数字输入,则应显示错误消息 当我运行代码时,似乎应该是终止代码的单词“done”就是执行计算的输入 我怎样才能让程序接受输入,只对整数变量执行计算而不使用字符串变量 下面是我的代码: max=None 最小=无 尽管如此: num=输入(“输入一个数字:”) 如果num==“完成”: 打破 对于num中的值: 尝试: imp=int(num) 除: 打印(“无效输

我是编程新手,我正在编写一个程序来查找用户输入的最小值和最大值

用户一次输入一个数字,最后输入“完成”。如果用户输入的不是“完成”的非数字输入,则应显示错误消息

当我运行代码时,似乎应该是终止代码的单词“done”就是执行计算的输入

我怎样才能让程序接受输入,只对整数变量执行计算而不使用字符串变量

下面是我的代码:

max=None
最小=无
尽管如此:
num=输入(“输入一个数字:”)
如果num==“完成”:
打破
对于num中的值:
尝试:
imp=int(num)
除:
打印(“无效输入”)
持续
最小值=最小值(num)
最大=最大(num)
打印(“最大值为:”,最大值)
打印(“最小值为:”,最小值)

循环的每次迭代中,当
循环时,覆盖
num
的值。因此,当用户输入
“done”
结束循环时,
num
的当前值为
“done”

考虑使用列表存储用户的每个输入(只要该输入不是值
“done”

例如:

nums=[]
尽管如此:
num=输入(“输入一个数字:”)
如果num==“完成”:
打破
nums.append(num)
然后迭代
nums
中的值,如下所示:

对于num中的num:
# ...

您也可以考虑在用户输入每个值时进行输入验证,而不是等待输入所有值,然后跳过任何无效值。这将创造更好的用户体验

例如:

nums=[]
尽管如此:
num=输入(“输入一个数字:”)
如果num==“完成”:
打破
尝试:
num_int=int(num)
除值错误外:
打印(“无效值,请输入有效整数。”)
持续
nums.append(num\u int)
#无需循环:
最小值=最小值(nums)
最大值=最大值(nums)

如果您希望用户输入由空格分隔的多个数字,并在末尾点击enter,而不是键入“done”(这是单调乏味的wrt用户体验),以下代码将为您提供:

nums = list(map(str, input().rstrip().split()))

当您打印NUM时,它将是所有数字的列表。这是一种从用户处获取多个输入的简单方法。

欢迎使用stackoverflow!不幸的是,我们不是一个代码编写服务。您可以从许多优秀的资源开始学习Python,如[this](),非常感谢。它确实按照你的建议起了作用。再次感谢你