我是stackoverflow的新手,现在正在学习python。我有一个问题,到处搜索它,但找不到任何适合我的想法。
所以问题是我想检查输入(或变量)是字母还是单词还是包含任何字母。例如,如果输入的变量或响应是a,它将返回False,但如果响应或变量仅由数字组成,则它将响应True。
我真的是python的新手并且不知道这么多的命令所以如果有一个现有的命令(或标签)只做我的工作请不要怪我!到目前为止,这里是我想要测试的代码,如果输入是一个字母,因为它会给出一个错误,如果 写了一封信。
import random
import time
repeat= True
none="none"
shutdowntime=3
repeatshut=True
def roll(count):
print ">Rolls are these:"
while count>0:
print random.randint(1,6)
count-=1
while repeat==True:
count=input("=>How many rolls do you want to roll?")
if count!=none:
roll(count)
else:
repeat=False
if repeat==False:
print "=>Thank you for using my dice roll."
while repeat==False and repeatshut==True:
print "%d seconds to shut down." % (shutdowntime)
shutdowntime-=1
time.sleep(1)
if shutdowntime==0:
repeatshut=False
print "Shutting down..."
time.sleep(2)
print "Bye!"
答案 0 :(得分:1)
您可以使用字符串的内置函数:isdigit()。
在这里您可以找到文档: https://docs.python.org/3/library/stdtypes.html#str.isdigit
答案 1 :(得分:0)
从您的代码可以看出,当用户输入none时,您希望代码停止,并在用户输入数字时输出。直到您想要继续输入。 代码:
from __future__ import print_function
import random
import time
repeat= True
none="none"
shutdowntime=3
repeatshut=True
def roll(count):
print (">Rolls are these:")
while count>0:
print (random.randint(1,6))
count-=1
while repeat==True:
while True:
try:
count=input("=>How many rolls do you want to roll?")
x=int(count)
roll(x)
except Exception:
if count==none:
repeat=False
break
else:
print("Enter valid choice")
if repeat==False:
print ("=>Thank you for using my dice roll.")
while repeat==False and repeatshut==True:
print ("%d seconds to shut down." % (shutdowntime))
shutdowntime-=1
time.sleep(1)
if shutdowntime==0:
repeatshut=False
print ("Shutting down...")
time.sleep(2)
print ("Bye!")
我使用了 future import print_function,因为我使用的是python 3,而你的代码中似乎使用的是python 2。 所以这段代码也适合你:) 告诉它是否有效。