[英]Python user input split() and loop
我正在接受用户输入,如下所示:0、1、2、3、5用户可以写任意数字并用逗号分隔,输入将为x,y,z,k,c
然后我在检查split()调用后是否有任何数字为0或大于30时遇到麻烦。
程式码片段:
numbers = input(user[i]['name'] +
", assign 10 different numbers between 1-30 (separate each with a comma ','): ")
usrNums = numbers.split()
for number in usrNums:
if number < 1 or number > 30:
#Something goes here, however, not important now.
附言:我已经阅读了all()
说明:用户输入一些数字,例如0,5,2,9,7,10 usrNums = numbers.split()
split()
被调用并将它们存储在usrNums
,然后我要检查usrNums [0, 5, 2, 9, 7, 10]
每个数字usrNums [0, 5, 2, 9, 7, 10]
如果其中任何一个为“ 0表示数字<1或> 30”。
编辑:没有,这不是重复的,我读完了, 如何在Python中将输入读取为整数? ,而且根本不一样。 我的问题是用户输入逗号分隔的数字,而不是每个输入一个数字。
使用split时,数字为字符串类型。 要与1或30进行比较,请将它们转换为整数
numbers = "0,1,2,3,5"
usrNums = numbers.split(",")
#usrNums ["0","1","2","3","5"]
for number in usrNums:
if int(number) < 1 or int(number) > 30:
numbers = "1,2,3,31"
for number in numbers.split(","):
number = eval(number) # or use int(number) or float(number) as example
if number < 1 or number > 30:
#do something
您忘记了split函数中的“,”,而忘记了将字符串转换为整数。
您可以使用map()
方法。
numberString = '1, 2, 3, 4, 5, 6, 7'
numbers = map(int, numberString.split(',')) # numbers = [1, 2, 3, 4, 5, 6, 7]
for num in numbers:
if num < 1 or num > 30:
# Do whatever you want here...
希望这可以帮助! :)
输入是一个字符串。 使用eval
与int
进行比较:
for number in usrNums:
if eval(number) < 1 or eval(number) > 30:
#Something goes here, however, not important now.
您还需要指出如何分割字符串: input.split(',')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.