'while User_Name != str()' will not accept strings
本问题已经有最佳答案,请猛点这里访问。
我的导师让我做一个"ID打印机",我想让程序在输入你的名字时不接受整数,但是这样做总体上不会接受字符串。我的代码在下面。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | User_Name ="" def namechecker(): print("Please Input Your name") User_Name = str(input(":")) while User_Name =="": print("Please input your name") User_Name = str(input(":")) while User_Name != str(): print("Please use characters only") print("Please input your name") User_Name = input (":") print("Thankyou,", User_Name) namechecker() |
你的问题很不清楚。读完后,我想你想得到一个只有字母字符的用户名。您可以使用
1 2 3 4 5 6 7 8 9 10 | def getUserName(): userName = '' while userName == '' or not userName.isalpha(): userName = input('Please input your name: ') if not userName.isalpha(): print('Please use alphabet characters only') return userName userName = getUserName() print('Thank you, {}'.format(userName)) |
如果您想跟上检查数字的想法,还可以检查字符串是否只包含str.isdigit()的数字。
这样地:
1 2 3 4 5 6 7 8 9 10 11 | def namechecker(): User_Name ="" while True: User_Name = input("Please input your name:") # input will always be a string if User_Name.isdigit(): # check if the string contains only digits // returns True or False print("Please use chracters only") continue # stay inside the loop if the string contains only digits else: break # leave the loop if there are other characters than digits print("Thankyou,", User_Name) namechecker() |
请注意,如果给定的字符串只包含数字,则此代码将只要求另一个输入。如果要确保字符串只包含字母字符,则可以使用string.isalpha()。
1 2 3 4 5 6 7 8 9 10 11 | def namechecker(): User_Name ="" while True: User_Name = input("Please input your name:") if not User_Name.isalpha(): print("Please use chracters only") continue else: break print("Thankyou,", User_Name) namechecker() |
这样就可以了,输入中不允许有数字。但是,您应该阅读关于内置类型的文档。