如何检查给定输入的多个方面

时间:2017-06-15 07:51:29

标签: python

在我正在创建的程序中,我需要测试数字是否大于9且最后一位是1,2或3.下面的代码不起作用。任何帮助将不胜感激。

num = raw_input("Enter a number\n")
lastdigit = int(repr(num)[-1])
if n > 9 and lastdigit == 1 or lastdigit == 2 or lastdigit == 3:
    print "OK"
else:
    print "Not OK"

4 个答案:

答案 0 :(得分:4)

一般来说,更优雅的解决方案是:

num = int(raw_input("Enter a number\n"))
if num > 9 and (num % 10) in {1, 2, 3}:
    print "OK"
else:
    print "Not OK"

答案 1 :(得分:1)

使用未定义的n变量,应为每个if条件定义n和use(),或者将num转换为int并更改if语句:

if (num > 9) and ( last_digit in (1,2,3)) :
    print 'Success'

答案 2 :(得分:0)

您可以将num转换为字符串以检查最后一位数字。在检查多个条件时也使用括号。

num = int(raw_input("Enter a number\n"))
lastdigit = str(num)[-1]
if (num > 9) and (lastdigit == '1' or lastdigit == '2' or lastdigit == '3'):
    print "OK"
else:
    print "Not OK"

答案 3 :(得分:0)

num的模式/模数乘以10,您将得到最后一位数字,您可以轻松比较两个数字。

num = raw_input("Enter a number\n")
lastdigit = num%10

if num > 9 and (lastdigit == 1 or lastdigit == 2 or lastdigit == 3):
    print "OK"

else:
    print "Not OK"