对于YourName input(),我想获取一个字符串值。因此,它不应该是float,int等。在此示例中,我想将“ Sunny”替换为字符串的任何值,以使while循环接受输入。
YourName = ''
while YourName != "Sunny":
print("Please type in your name")
YourName = input()
print(YourName + " is correct")
最好先谢谢
Sentino
答案 0 :(得分:4)
如评论中所述,您可以使用类似于以下内容的内容:
YourName = input("Please enter your name: ")
while True:
if YourName.isalpha():
break
else:
print("Must enter string")
print("Please type in your name")
YourName = input("Please enter your name: ")
continue
isinstance()是一个内置函数,用于检查变量是否属于特定类,例如isinstance(my_var, str) == True
。 但是,Input()
函数始终返回字符串。因此,如果您要确保输入的是所有字母,都想使用.isalpha()。您也可以使用Try/except
。正如@SiHa所说,this SO question的反应很好。
正如注释中指出的,如果字符串中有空格,则此答案将无效。如果要允许多种名称格式,可以使用Regex。例如,您可以执行以下操作:
import re
YourName = input("Please enter your name: ")
while True:
if re.fullmatch(r"[a-zA-Z]+\s?[a-zA-Z]+", YourName) is not None:
break
else:
print("Must enter string")
print("Please type in your name")
YourName = input("Please enter your name: ")
continue
与正则字符串方法相比,使用正则表达式将使您对输入有更多的控制。 Docs,Python Regex HOWTO。 re
是python随附的标准库,可为您提供最大的灵活性。您可以使用regex101来帮助您进行测试和调试。
如果找到re.fullmatch()
,如果没有找到,None
将返回一个匹配对象。它表示输入可以是任何小写或大写字母,中间有一个可选空格,后跟更多字母。
如果您不想导入包,则可以遍历输入对象并使用以下命令检查所有字符是空格还是字母:
all([x.isalpha() | x.isspace() for x in YourName])
但是,这不会说有多少空间或它们在哪里。如果需要更多控制,最好使用正则表达式。
答案 1 :(得分:1)
您可能正在使用Python 2.7,在这种情况下,如果要直接将输入作为字符串,则需要使用raw_input()
。
否则,在Python 3中,input()
总是返回一个字符串。因此,如果用户输入“ 3 @!%”作为其名称,则该值将存储为字符串(您可以使用type(variable)
检查变量的类型)。
如果要检查以确保字符串仅包含字母,则可以使用方法isalpha()
和isspace()
(在我的示例代码中,我假设您要允许空格,但是如果您需要一个单词的答复,则可以排除该部分。
由于这些方法对字符进行操作,因此需要使用for循环:
YourName =""
while YourName is not "Sunny" or not all(x.isalpha() or x.isspace() for x in YourName):
#You can pass a string as a prompt for the user here
name = input("please enter name")
print (YourName)
但是,我应该注意,由于没有包含非字母字符的字符串都不能等于“ Sunny”,因此此检查完全是多余的。
答案 2 :(得分:0)
正如其他人指出的那样,String dataDir = Path.GetFullPath("chromium-data");
BrowserContextParams params1 = new BrowserContextParams(dataDir);
BrowserContext context1 = new BrowserContext(params1);
Browser browser = BrowserFactory.Create(context1);
CookieStorage cookieStorage = browser.CookieStorage;
cookieStorage.SetSessionCookie("https://vk.com/", "ggggggg", "jnjnjnjnjnjnj", "vk.com", dataDir, true, false);
cookieStorage.Save();
browser.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
browser.LoadURL("https://vk.com/");
总是返回一个字符串。
您可以使用input()
方法检查字符是否为字母。
str.isalpha
示例:
YourName = ''
while True:
print("Please type in your name")
YourName = input()
failed = False
for char in YourName:
if not char.isalpha():
failed = True
if not failed:
break