- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个程序可以获取用户的输入,然后询问信息是否正确。但是,当用户输入完信息后,我收到以下代码的错误:
#Welcome
print("Welcome to the game!\n")
def data():
#Age
age = int(input("Enter your age: "))
#Gender
gen = input("Enter your gender: ")
#email
mail = input("Enter your email: ")
#username
name = input("Enter your name: ")
return (age, gen, mail, name)
def datacheck():
print("Your information:\n")
print("Age: ", age, "\n")
print("Gender: ", gen, "\n")
print("Email: ", mail, "\n")
print("Username: ", name, "\n")
yn = input("Is it correct? Yes or No: ")
if yn == "Yes":
print("Hello, ", name)
if yn == "No":
data()
#Array to variables
age = data[0]
gen = data[1]
mail = data[2]
name = data[3]
#datacheck
datacheck()
data = data()
#Array to Variable.
age = data[0]
gen = data[1]
mail = data[2]
name = data[3]
#datacheck
datacheck()
我得到的错误是:
Traceback (most recent call last): File "/Users/joe/Documents/test123.py", line 48, in datacheck() File "/Users/joe/Documents/test123.py", line 20, in datacheck print("Age: ", age, "\n") UnboundLocalError: local variable 'age' referenced before assignment
如果我输入没有错误,但重新输入信息不起作用:
#Welcome
print("Welcome to the game!\n")
def data():
#Age
age = int(input("Enter your age: "))
#Gender
gen = input("Enter your gender: ")
#email
mail = input("Enter your email: ")
#username
name = input("Enter your name: ")
return (age, gen, mail, name)
def datacheck():
print("Your information:\n")
print("Age: ", age, "\n")
print("Gender: ", gen, "\n")
print("Email: ", mail, "\n")
print("Username: ", name, "\n")
yn = input("Is it correct? Yes or No: ")
if yn == "Yes":
print("Hello, ", name)
if yn == "No":
data()
#datacheck
datacheck()
data = data()
#Array to Variable.
age = data[0]
gen = data[1]
mail = data[2]
name = data[3]
#datacheck
datacheck()
我如何获取它以便用户可以重新输入他们的信息(数据功能)?
最佳答案
你有一个 scoping问题。
此外,我认为您可能想考虑成为 object oriented .也就是说,如果我对您使用用户数据的假设是正确的。您可以将用户的属性保存在称为 object 的东西中,而不是将用户的属性保存在一堆数组(列表)中。 .我的意思是,如果您的用户最终拥有 2,000 个属性,您是否需要记住代表他们眼睛颜色的属性编号以便您可以在列表中引用它?可能不会。哈哈
这种方法可能会使您的代码更易于使用/重用,并且在未来更有条理:
class User():
"""A class representing a user.
defaults set.
"""
def __init__(self, data={'age': 1,
'gender': 'x',
'mail': 'user@default',
'name': 'User'}):
self.data = data
self.age = self.data['age']
self.gender = self.data['gender']
self.mail = self.data['mail']
self.name = self.data['name']
def __str__(self):
"""The string representation of a User object."""
return self.name
def get_age(self):
"""Return the user's age."""
return self.age
def get_gender(self):
"""Return the user's gender."""
return self.gen
def get_mail(self):
"""Return the user's email address."""
return self.mail
def get_name(self):
"""Return the user's name."""
return self.name
def get_data(self):
"""Return a dictionary containing a User's info."""
return self.data
if __name__=="__main__":
user_data = {} # will contain our data
# ask for user input
for key in ["age", "gender", "mail", "name"]:
user_data[key] = raw_input("Enter your %s: " % key)
# Store user input data in an object
user = User(data=user_data)
print user.get_data() # prints a dictionary containing user values
关于Python 用户数据校验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29801742/
如何在 PHP 中生成 CRC-8 校验和? 最佳答案 function crcnifull ($dato, $byte) { static $PolyFull=0x8c; for ($i=0
我正在编写代码来使用 32 位无符号整数计算 CRC16。当尝试打印执行 CRC 操作的 XOR 函数的返回值时,它总是打印 0。我尝试了各种调试方法,例如打印语句,但是,我似乎无法弄清楚! 这是我的
ThinkPHP3.2.3验证码显示、刷新、校验 ,具体如下: 显示验证码 首先在Home/Controller下创建一个公共控制器PublicController
我想将自定义验证绑定(bind)到 TimePicker 自定义控件,但下面的代码显示“无法将内容添加到 TimePicker 的对象类型。”。
目录 Spring 校验(validator,JSR-303)实现 什么是JSR-303规范 与Spring MVC结合 实体类添加
导包和配置 导入 JSR 303 的包、hibernate valid 的包 ?
我是一名优秀的程序员,十分优秀!