【发布时间】:2016-02-09 10:13:51
【问题描述】:
我必须编写一个程序来检查用户的变量名是否有效。这些是我正在检查的规则:只允许使用字母、数字和下划线字符。第一个字符不能是数字。
我不确定我做错了什么。每次我运行程序时,它都会告诉我它是一个有效的变量,即使对于无效的输入也是如此。
这是我的程序:
import string
def valid(name):
for character in (name):
if name[0].isdigit():
name==False
break
else:
if character.isalnum() and character is ('_'):
name==True
else:
name==False
return
def main():
name=input("Enter your Python variable name: ")
while name != "done":
valid(name)
if True:
print("This is a valid variable name.")
else:
print("This is not a valid variable name.")
name=input("Enter your Python variable name or 'done': ")
main()
这是一个示例输出(如果操作正确):
Enter your Python variable name: high_temp
This is a valid variable name.
Enter your Python variable name or "done": highTemp2
This is a valid variable name.
Enter your Python variable name or "done": 2_high_temp
This is not a valid variable name.
Enter your Python variable name or "done": done
提前谢谢你!
【问题讨论】:
-
关键字呢,比如
if、for、try、except?如果您正在使用 Python 3.x,请查看std.isidentifier()。也看看这个问题:stackoverflow.com/q/12700893/1025391 -
您可以使用正则表达式:
def valid(name): return re.match(r'[a-zA-Z_]\w+', name)