How to make a raw input a number?
本问题已经有最佳答案,请猛点这里访问。
我想在我的树莓圆周率上做一个简单的程序,它可以让一个LED灯闪烁的次数和你输入的数字一样多。我的程序正在运行,但有点重复:
1 2 3 4 5 6 7 8 9 10 11 | times = raw_input('Enter a number: ') if times == '1': times = 1 elif times == '2': times = 2 elif times == '3': times = 3 elif times == '4': times = 4 elif times == '5': times = 5 |
这需要很多编程来处理更大的输入,比如145。
有人知道一种更聪明更快的方法吗?
PS:代码完成;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # I know i need to import GPIO and stuff, this is just an example. import time while True: try: times = int(raw_input('Enter a number: ')) break except ValueError: print"Enter a number!" print 'Ok, there you go:' while times > -1: if times > 0: print 'hi' times = times-1 time.sleep(1) continue elif times == 0: print 'That was it.' time.sleep(2) print 'Prepare to stop.' time.sleep(3) print '3' time.sleep(1) print '2' time.sleep(1) print '1' time.sleep(1) print 'BYE' break |
谢谢您。
1 | times = int(raw_input('Enter a number: ')) |
如果有人进入一中的东西比其他的整数,它将把一个例外。如果这是不是你想要的,你可以做你自己的异常和抓住手柄,像这样:
1 2 3 4 | try: times = int(raw_input('Enter a number: ')) except ValueError: print"An integer is required." |
如果你想让某人进入到所要求的输入有效的输入,在上述循环中:
1 2 3 4 5 6 | while True: try: times = int(raw_input('Enter a number: ')) break except ValueError: print"An integer is required." |
在你的包或输入的数据
1 2 | times = int(raw_input('Enter a number: ')) print type(times) |
输出:
1 2 | Enter a number: 10 <type 'int'> |
如果用户输入的数目比其他的东西,它将投掷
1 | ValueError: invalid literal for int() with base 10: 'asdf' |
你可以输入一个整数和灌注异常,如果不抓住它。
1 2 3 4 5 6 | try: times = int(raw_input('Enter a number: ')) # do something with the int except ValueError: # not an int print 'Not an integer' |