Python 检查if语句中的字符串

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()检

我有一个带有一些用户输入的程序,我需要检查用户输入的是字符串还是介于1到1000万之间的整数值

我的代码如下(简化):

为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
是不正确的语法。不要使用分隔符。第四,如果您想转到,只需
继续