我希望用户不要使用此函数进行整数输入:
x = input("Whats your name?")
while x == int:
y = input("why is there a number in your name? Please re enter your name")
但这不起作用。知道为什么吗?
答案 0 :(得分:2)
改善@ persian_dev的答案 -
def check_name(string):
for char in string :
try:
int(char)
return False
except:
continue
return True
这会遍历字符串,尝试将每个字符转换为int,并在第一次成功时返回False。
答案 1 :(得分:1)
答案 2 :(得分:1)
这是一个检查功能:
def isnumeric(string):
try:
int(string)
return True
except:
return False
def check_name(string):
for char in string:
if isnumeric(char):
return False
return True
答案 3 :(得分:1)
如果您只想确保用户输入仅包含字符串,可以使用(oby)$ pip freeze
-bash: /Users/s4l1818/Desktop/oby/bin/pip: /Users/s4l1818/Desktop/test/bin/python: bad interpreter: No such file or directory
检查输入:
isalpha()
我使用的是Python 2,因此我使用x = raw_input("Whats your name?")
while not x.isalpha():
x = raw_input("why is there a number in your name? Please re enter your name")
代替raw_input
。如果您使用Python 3,则可以相应地进行调整。
答案 4 :(得分:-1)
input
是一种类型。你不是在问“x是否包含数字?”甚至“是xa数字吗?”,你问“是x号吗?” / em>(整数,更准确地说)。没有意义。假设输入名称有效,那么您使用的是Python 3,在这种情况下,isinstance(x, int)
的结果始终是一个字符串。即使它只是一串数字。所以int(...)
也行不通。您可以尝试使用y
进行投射,但如果名称只包含字母中的某个数字,则无效。
这是测试字符串中是否有任何数字的好方法:
any(map(str.isdigit,x))
在您的代码中,同时将x
更正为x = input("Whats your name? ")
while any(map(str.isdigit, x)):
x = input("why is there a number in your name? Please re enter your name ")
:
var ps = PowerShell.Create(myRS);
ps.Commands.AddCommand("Import-Module").AddArgument(@"g:\...\PowerDbg.psm1")
ps.Invoke()