我在Python中学习编程。作为我的第一次尝试,我试图创建一个程序,需要用户键入用户的数据,然后程序存储它。如果可能,请将其写入.txt
文件。
我从这开始;
userKey = ["name ","age ","gender "]
userValue = [input("name "),input("age "),input("gender ")]
userData = dict(zip(userKey, userValue))
但它只运行一次,所以我尝试了这个:
def userData():
userKey = ["name ","age ","gender "]
userValue = [input("name "),input("age "),input("gender ")]
userData = dict(zip(userKey, userValue))
if __name__ == '__main__':
print(userData)
但它没有做我的第一个代码所做的事情。我怎样才能继续前进。
答案 0 :(得分:0)
def userData():
userKey = ["name ","age ","gender "]
userValue = [input("name "),input("age "),input("gender ")]
userData = dict(zip(userKey, userValue))
if __name__ == '__main__':
print(userData())
它现在应该工作。
答案 1 :(得分:0)
您缺少括号,因此请更改:
print(userData)
到此:
print(userData())
你会没事的。
答案 2 :(得分:0)
首先,你错过了函数调用中的括号,所以它应该是这样的:
print(userData())
然后,为了让程序不断要求用户输入,你应该使用循环来做到这一点:
def userData():
while True:
userKey = ["name ","age ","gender "]
userValue = [input("name "),input("age "),input("gender ")]
userData = dict(zip(userKey, userValue))
要停止执行,请按Ctrl+C
。
然后,为了将其写入文件,请使用Python中的open()
函数:
...
with open('/path/to/file.txt', 'w') as my_file:
my_file.write('data')
...
答案 3 :(得分:0)
其他解决方案都不会有效,因为您必须返回来自您的功能。
def userData():
userKey = ["name ","age ","gender "]
userValue = [input("name "),input("age "),input("gender ")]
data = dict(zip(userKey, userValue))
return data
如果您希望能够添加多个用户,可以使用while
循环执行此类操作:
if __name__ == '__main__':
ask = True
# Get user data
userdata = userData()
# Write description on first row (table header)
with open("user.txt", 'w') as f:
for key in userdata.keys():
f.write(key + "\t")
f.write("\n")
while ask:
# Append user data to text file
with open("user.txt", 'a') as f:
for data in userdata.values():
f.write(data + "\t")
f.write("\n")
# Ask wheter you want to add a new user and check user input
chk = True
while chk:
add = input("Add another user? [y]/n ") # y is the default answer
if not add or add=='y' or add=='yes':
chk = False
userdata = userData()
elif add=='n' or add=='no':
ask=False
chk = False
else: # Prompt again if user entered an invalid string
print("Please enter y or n")
在这里,我还要检查有效输入,您还需要在userData
函数中执行此操作,以避免用户提交错误值(如字符串多年,性别无效或名称无效,例如包含数字)< / p>
答案 4 :(得分:0)
我想你可能想要那样做
def userData():
userKey = ["name ","age ","gender "]
userValue = [input("name "),input("age "),input("gender ")]
userData = dict(zip(userKey, userValue))
return userData
if __name__ == '__main__':
print(userData())