Python3函数入门练习题参考代码运行无输出问题求助
问题根因与修复方案
1. 无输出的核心原因
你仅完成了user_input函数的定义,Python运行脚本时不会自动执行自定义函数内部的逻辑,必须主动调用函数才会触发输入、计算、打印等操作,这是你终端无输出的直接原因。
2. 原有代码的额外错误
除了未调用函数外,你写的format占位符索引顺序错误,就算调用函数也会输出错误结果:
原有代码中format的参数顺序是first_name[0], surname[0],2021-birth_year,对应索引0是名字首字母、索引1是姓氏首字母、索引2是年龄,但你打印时写的{1}{2}会把姓氏首字母和年龄拼接,不符合输出要求。
3. 修复后的完整代码
def user_input(): birth_year = int(input("enter your birth year:\n")) first_name = input("enter your first name:\n") surname = input("enter your surname:\n") # 修正占位符索引,0对应名字首字母,1对应姓氏首字母,2对应年龄,upper()保证首字母大写输出 print("your initials are {0}{1} and you are {2} years old".format(first_name[0].upper(), surname[0].upper(), 2024 - birth_year)) # 主动调用函数,触发内部逻辑执行 user_input()
可选优化点
- 可以用
datetime模块自动获取当前年份,不用每年手动修改硬编码的年份数值:
import datetime current_year = datetime.datetime.now().year age = current_year - birth_year
- 新增输入合法性校验,避免用户输入非数字的出生年份时程序直接报错。
内容的提问来源于stack exchange,提问作者EGL codes
相关产品推荐
相关产品推荐

