Python新手求助:输入赋值变量时if/else脚本语法错误排查
帮你解决Python if/else脚本的语法问题
嘿,我来帮你排查下问题所在!作为Python新手,遇到这种小坑很正常,咱们一步步来:
1. 输入类型不匹配(最核心的问题)
input()函数获取用户输入后,返回的是字符串类型,而你直接拿它和整数(比如0、12)做比较,Python会因为类型不兼容报错。你需要先把输入转换成整数:
hour = int(input('enter an hour'))
2. 代码缩进错误
Python是靠缩进区分代码块的,你的if/elif后面的代码块没有正确缩进,这会直接导致语法错误。正确的写法是在if/elif语句结尾加冒号后,下一行缩进4个空格(或者一个制表符)。
3. 变量赋值的小细节
你写的clock = hour, 'pm'会创建一个元组(比如(9, 'pm')),如果你的目标是生成类似"9 pm"这样的字符串,应该改成字符串拼接的方式,比如用f-string:
clock = f"{hour} pm"
另外,还有个小逻辑问题:上午的时间应该对应am而不是pm哦!
修正后的完整示例代码
# 先把输入转成整数 hour = int(input('enter an hour: ')) if hour >= 0 and hour < 12: # 上午时间用am clock = f"{hour} am" elif hour >= 12 and hour <= 23: # 12点是中午pm,13点及以后转成12小时制 if hour == 12: clock = "12 pm" else: clock = f"{hour - 12} pm" else: # 处理无效输入 print("请输入0到23之间的有效小时数!") exit() # 输出结果 print(clock)
内容的提问来源于stack exchange,提问作者Matthew Webster
相关产品推荐
相关产品推荐

