我是一名学习Python的学生,一般都是编码新手。我已经开始了这个"迷你游戏"侧面项目,但我在创建创建用户名和密码的脚本时遇到了问题,并将它们存储到文本文件中。
def createUser():
import Usernames_Passwords.txt
open("Usernames_Passwords.txt", "r")
Username = raw_input("Create a username: ")
Password = raw_input("Create a password: ")
但它出现了错误:
import Usernames_Passwords.txt
ImportError: No module named Usernames_Passwords.txt
我删除了导入行,程序的其余部分一直有效,直到我收到此错误:
if User == Username and PassWord == Password:
NameError: global name 'Username' is not defined
这是整个脚本:
import os
import time
import sys
def createUser():
import Usernames_Passwords.txt
open("Usernames_Passwords.txt", "r")
Username = raw_input("Create a username: ")
Password = raw_input("Create a password: ")
def login():
User = raw_input ("Enter Username: ")
time.sleep(0.5)
PassWord = raw_input ("Enter Password: ")
if User == Username and PassWord == Password:
print "."
time.sleep(0.5)
print "."
time.sleep(0.5)
print "."
time.sleep(0.5)
print "."
time.sleep(0.5)
print "Login successful! Proceeding"
logged()
else:
print "."
time.sleep(0.5)
print "."
time.sleep(0.5)
print "."
time.sleep(0.5)
print "."
time.sleep(0.5)
print "Your Username or Password did not match, please try again"
time.sleep(2)
def logged():
print "WELCOME TO SUPER MARIO INTERACTIVE SIMULATOR 2000"
time.sleep(1.5)
print "PLEASE ENTER YOUR NAME BELOW"
Name = raw_input ("NAME: ")
print "HELLO THERE", Name
time.sleep(1)
print "PLEASE ALSO INSERT YOUR AGE"
Age = raw_input ("AGE: ")
print "GOOD YOU ARE", Age
time.sleep(2)
print "BUT FIRST YOU MUST PASS THIS TEST"
createUser()
time.sleep(3)
login()
答案 0 :(得分:1)
创建新文件时,您需要使用" w"这样写的写模式。
file = open("Usernames_Passwords.txt", "w")
如果文件已经创建并且你想添加它,你可以使用这样写的附加模式。
file = open("Usernames_Passwords.txt", "a")
如果你想从已经写好的文件中读取文件,你可以使用" r"你以前的模式。
file = open("Usernames_Passwords.txt", "r")
据我所知,import语句用于调用其他库,所以你特别不需要这个程序。
答案 1 :(得分:1)
我发布的代码有三个主要问题:
您正在打开文本文件的只读副本。 MoonMoon指出你不需要那个import语句。导入仅适用于您要使用的库,因此只需删除它(这是第一个错误的原因,python无法通过名称“Usernames_Passwords.txt”找到模块)。您想使用“打开”功能来访问文件。 open()
函数的第二个参数是您打开文件的模式。“r”被读取,“w”被写入,“a”被追加。因为我想你想多次运行它并将所有过去的用户名和密码保存在你想要追加的同一个文件中。完成后,您还需要关闭文件。最简单的方法是使用with
语句。您可以阅读有关with语句here的更多信息:
with open("Usernames_Passwords.txt", 'a') as f:
# do something
您没有在txt文件中写任何内容。你必须告诉python写入文件,否则你不会保存任何东西。尝试这样的事情:
with open("Usernames_Passwords.txt", 'a') as f:
Username = raw_input("Create a username: ")
Password = raw_input("Create a password: ")
f.write('%s, %s \n' % (Username, Password))
如果我对%
做了什么让你感到困惑,那就叫做字符串格式操作符。它允许您将变量插入到具有指定格式的字符串中。一个小小的谷歌搜索将告诉你你需要知道的一切。
open()
。)我会留给你弄清楚细节,但这是一个很好的起点。您发布的代码中的缩进也存在一些问题,但我认为这些只是根据您收到的错误来复制错误。
顺便说一句,当我第一次学习编码时,我使用了“Code Academy”。这是一个教授python的在线互动教程。我想你会从中得到很多。