Python代码输出格式调整:实现提示与函数结果同行显示
问题描述
我写了一段根据输入小时数输出对应英文问候语的Python代码,但运行后的输出格式不符合预期。当前输出里提示语句和函数结果分行显示,输入提示的格式也不满足要求,希望调整代码达到指定的输出样式。
输入代码
d="Good Dawn" m="Good Morning" a="Good Afternoon" e="Good evenning" n="Good Night" nn="Good Noon" print("What is time in only Hour?") t=int(input("Hour: ")) def myFunc1(): if t>4: print(d) elif t>6: print(m) elif t>11: print(nn) elif t>15: print(a) elif t>16: print(e) else: print(n) print("1st Algorithm Result is: ") myFunc1() def myFunc2(): if t<7: print(d) elif t<12: print(m) elif t<16: print(nn) elif t<18: print(a) elif t<20: print(e) else: print(n) print("2nd Algorithm Result is: ") myFunc2()
当前输出结果
What is time in only Hour? Hour: 11 1st Algorithm Result is: Good Dawn 2nd Algorithm Result is: Good Morning
期望输出样式
What is time in only Hour? Hour: 11 1st Algorithm Result is: Good Dawn 2nd Algorithm Result is: Good Morning
修改后的代码
d="Good Dawn" m="Good Morning" a="Good Afternoon" e="Good Evening" n="Good Night" nn="Good Noon" print("What is time in only Hour?") # 调整输入提示的空格格式 t=int(input("Hour: ")) def myFunc1(): # 修正原逻辑的区间判断错误,确保每个时间段条件能触发 if 4 < t <= 6: return d elif 6 < t <= 11: return m elif 11 < t <= 15: return nn elif 15 < t <= 16: return a elif 16 < t < 20: return e else: return n # 将提示语和结果拼接在同一行输出 print(f"1st Algorithm Result is: {myFunc1()}") def myFunc2(): if t <7: return d elif t <12: return m elif t <16: return nn elif t <18: return a elif t <20: return e else: return n print(f"2nd Algorithm Result is: {myFunc2()}")
修改说明
- 输入格式调整:把
input("Hour: ")改为input("Hour: "),让冒号与输入数字之间保留两个空格,匹配期望的输入格式。 - 输出格式调整:将原函数内的
print改为返回字符串,外部用print(f"...")把提示语和结果拼接成一行,避免分行显示。 - 逻辑错误修正:原
myFunc1的判断条件存在逻辑漏洞(比如t>4会直接返回结果,后续条件无法触发),调整为区间判断,确保每个时间段的逻辑正确。 - 拼写修正:把
evenning改为正确的Evening。
内容的提问来源于stack exchange,提问作者Sahriar Sabit
相关产品推荐
相关产品推荐

