Python 检查if语句中的字符串
我有一个带有一些用户输入的程序,我需要检查用户输入的是字符串还是介于1到1000万之间的整数值 我的代码如下(简化):Python 检查if语句中的字符串,python,string,input,int,Python,String,Input,Int,我有一个带有一些用户输入的程序,我需要检查用户输入的是字符串还是介于1到1000万之间的整数值 我的代码如下(简化): 为True时: inp=原始输入(“输入一个介于1和1000万之间的值:”) 如果inp10.000.000: 打印“必须小于10.000.000” 持续 elif'inp是一个字符串':#这是我的问题 打印“必须是整数值!” 持续 其他: '执行代码的其余部分' 我不知道怎么解决这个问题。当我错误地输入字符串时,我的程序总是终止 谢谢大家! 您可以使用.isdigit()检
为True时:
inp=原始输入(“输入一个介于1和1000万之间的值:”)
如果inp<1:
打印“必须高于1”
持续
elif inp>10.000.000:
打印“必须小于10.000.000”
持续
elif'inp是一个字符串':#这是我的问题
打印“必须是整数值!”
持续
其他:
'执行代码的其余部分'
我不知道怎么解决这个问题。当我错误地输入字符串时,我的程序总是终止
谢谢大家! 您可以使用.isdigit()
检查字符串是否由数字组成,以确保它可以转换为整数:
while True:
in = raw_input("Enter a value between 1 and 10 million: ")
if in.isdigit():
number = int(in)
if number < 1:
print "Must be higher than 1"
continue
elif number > 10**6:
print "Must be less than 10.000.000"
continue
else:
'execute the rest of the code'
else:
print "Must be an integer value!"
continue
为True时:
in=原始输入(“输入介于1和1000万之间的值:”)
如果在.isdigit()中:
数字=整数(英寸)
如果数字小于1:
打印“必须高于1”
持续
elif编号>10**6:
打印“必须小于10.000.000”
持续
其他:
'执行代码的其余部分'
其他:
打印“必须是整数值!”
持续
您可以使用.isdigit()
检查字符串是否由数字组成,以确保它可以转换为整数:
while True:
in = raw_input("Enter a value between 1 and 10 million: ")
if in.isdigit():
number = int(in)
if number < 1:
print "Must be higher than 1"
continue
elif number > 10**6:
print "Must be less than 10.000.000"
continue
else:
'execute the rest of the code'
else:
print "Must be an integer value!"
continue
为True时:
in=原始输入(“输入介于1和1000万之间的值:”)
如果在.isdigit()中:
数字=整数(英寸)
如果数字小于1:
打印“必须高于1”
持续
elif编号>10**6:
打印“必须小于10.000.000”
持续
其他:
'执行代码的其余部分'
其他:
打印“必须是整数值!”
持续
您可以使用.isdigit()
检查字符串是否由数字组成,以确保它可以转换为整数:
while True:
in = raw_input("Enter a value between 1 and 10 million: ")
if in.isdigit():
number = int(in)
if number < 1:
print "Must be higher than 1"
continue
elif number > 10**6:
print "Must be less than 10.000.000"
continue
else:
'execute the rest of the code'
else:
print "Must be an integer value!"
continue
为True时:
in=原始输入(“输入介于1和1000万之间的值:”)
如果在.isdigit()中:
数字=整数(英寸)
如果数字小于1:
打印“必须高于1”
持续
elif编号>10**6:
打印“必须小于10.000.000”
持续
其他:
'执行代码的其余部分'
其他:
打印“必须是整数值!”
持续
您可以使用.isdigit()
检查字符串是否由数字组成,以确保它可以转换为整数:
while True:
in = raw_input("Enter a value between 1 and 10 million: ")
if in.isdigit():
number = int(in)
if number < 1:
print "Must be higher than 1"
continue
elif number > 10**6:
print "Must be less than 10.000.000"
continue
else:
'execute the rest of the code'
else:
print "Must be an integer value!"
continue
为True时:
in=原始输入(“输入介于1和1000万之间的值:”)
如果在.isdigit()中:
数字=整数(英寸)
如果数字小于1:
打印“必须高于1”
持续
elif编号>10**6:
打印“必须小于10.000.000”
持续
其他:
'执行代码的其余部分'
其他:
打印“必须是整数值!”
持续
首先,您使用的是Python2,它很乐意将字符串与整数进行比较。你不想那样做。其次,raw\u input()
将始终返回字符串。您希望做的是检查该字符串是否可能表示一个数字。第三,10.000.000
是不正确的语法。不要使用分隔符。第四,如果你想提前到达循环的顶端,你只需要继续。如果所有内容都在循环末尾的If..elif..else
块中,则只执行其中一个,因此不需要在每个分支的末尾放置continue
。您可以使用continue
语句或重组分支。最后,不要在
中使用作为变量名,因为这是Python关键字
while True:
inp = raw_input("Enter a value between 1 and 10 million: ")
if not inp.isdigit():
print "Must be an integer value!"
continue # each of these continue statements acts like a "failed, try again"
inp = int(inp)
if inp < 1:
print "Must be higher than 1"
continue # same for this one
if inp > 10000000:
print "Must be less than 10.000.000"
continue # and this one
# execute the rest of the code
为True时:
inp=原始输入(“输入一个介于1和1000万之间的值:”)
如果不是inp.isdigit():
打印“必须是整数值!”
continue#这些continue语句中的每一条都像是“失败,再试一次”
inp=int(inp)
如果inp<1:
打印“必须高于1”
继续#这个也一样
如果inp>10000000:
打印“必须小于10.000.000”
继续,还有这个
#执行代码的其余部分
首先,您使用的是Python2,它很乐意将字符串与整数进行比较。你不想那样做。其次,raw\u input()
将始终返回字符串。您希望做的是检查该字符串是否可能表示一个数字。第三,10.000.000
是不正确的语法。不要使用分隔符。第四,如果你想提前到达循环的顶端,你只需要继续。如果所有内容都在循环末尾的If..elif..else
块中,则只执行其中一个,因此不需要在每个分支的末尾放置continue
。您可以使用continue
语句或重组分支。最后,不要在
中使用作为变量名,因为这是Python关键字
while True:
inp = raw_input("Enter a value between 1 and 10 million: ")
if not inp.isdigit():
print "Must be an integer value!"
continue # each of these continue statements acts like a "failed, try again"
inp = int(inp)
if inp < 1:
print "Must be higher than 1"
continue # same for this one
if inp > 10000000:
print "Must be less than 10.000.000"
continue # and this one
# execute the rest of the code
为True时:
inp=原始输入(“输入一个介于1和1000万之间的值:”)
如果不是inp.isdigit():
打印“必须是整数值!”
continue#这些continue语句中的每一条都像是“失败,再试一次”
inp=int(inp)
如果inp<1:
打印“必须高于1”
继续#这个也一样
如果inp>10000000:
打印“必须小于10.000.000”
继续,还有这个
#执行代码的其余部分
首先,您使用的是Python2,它很乐意将字符串与整数进行比较。你不想那样做。其次,raw\u input()
将始终返回字符串。您希望做的是检查该字符串是否可能表示一个数字。第三,10.000.000
是不正确的语法。不要使用分隔符。第四,如果您想转到,只需继续