蟒蛇;如何检查变量(Ussualy录制到输入而不是raw_input)是字母还是单词?

时间:2018-04-29 12:47:49

标签: python

我是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!"

2 个答案:

答案 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。 所以这段代码也适合你:) 告诉它是否有效。