You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python文件写入问题:调用register()后无法向txt文件写入内容

问题解决:代码无法写入txt文件的原因及修复

你的代码存在几个关键问题,导致无法正确写入内容到文件:

1. 函数无返回值

register()函数收集了用户输入,但没有返回任何内容,直接调用file.write(register())相当于写入None,根本没把用户输入的信息传进去。

2. 条件判断逻辑错误

if Welcome == "no" or "No": 这个写法有问题,or后面的"No"是布尔真值,不管Welcome是什么,这个条件永远成立。正确写法应该是:

if Welcome in ("no", "No"):

或者统一转小写判断,避免大小写差异:

if Welcome.lower() == "no":

3. 重复调用register()

前面的else: register()已经调用过一次注册函数,后面又再次调用,导致用户要重复输入两次信息,而且第二次调用也没保存输入内容。

修复后的完整代码

Welcome = input("Hi my name is Steve. Do you have an account at Steve? ANSWER WITH JUST A YES OR NO ")

def register():
    name = input("First name: ")
    last_name = input("Last name: ")
    email = input("Email: ")
    username = input("Username: ")
    password = input("Password: ")
    # 将用户信息整理成可写入的字符串
    user_info = f"First name: {name}\nLast name: {last_name}\nEmail: {email}\nUsername: {username}\nPassword: {password}"
    return user_info

def login():
    username = input("Username: ")
    password = input("Password: ")
    # 可在此添加登录验证逻辑,比如读取文件对比信息

if Welcome.lower() == "yes":
    login()
else:
    # 调用register获取用户信息并写入文件
    user_data = register()
    with open("userinfo.txt", "w") as file:
        file.write(user_data)

修复说明

  • 让register()返回整理好的用户信息字符串,写入文件时就能拿到实际内容
  • 修正条件判断逻辑,避免大小写导致的判断错误
  • 合并文件写入与register()调用逻辑,消除重复执行问题
  • 修正变量名拼写错误(ussername改为username,Email改为小写email,符合Python命名规范)

内容的提问来源于stack exchange,提问作者DJDimsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:15:33