※ 引述《depatg1998 (可可可)》之铭言:
: 输入有三行。
: 第一行为两个整数 H, L,数字间以空格分开,代表当天气温的最高温及最低温,保证 H
: >= L。
: 第二行为一个 0-100 间的整数,代表该天的降雨机率。
: 第三行为一非负整数,代表当天的紫外线指数。
...
: 以下为code
: H_L = input().split(' ')
: H_L_int = [int(i) for i in H_L]
: # print(H_L_int)
第一行就错了
题目要求定义H, L是整数,数字间以空格分开,还要保证 H >= L
帮凯凯写程式第一件事,要先默认凯凯是智障
你怎么知道凯凯不会给你随便输入:
1.字串、浮点数
2.3个以上温度或只有1个温度或是根本没输入
3.气温用符号“&”、全角空格,而不是半角空格分开
4.把最低温输入在前面,最高温输入在后面
要避免这种情况发生,
一定要建立一个函式(function)去检查以下条件,
只要不合法就抛出错误或是要求重新输入:
1.气温是否是整数?
2.气温是否只有两个?
3.两者是否用半角空格分开?
4.即便两者输入相反,也必须自行把较高的数字设定成H,最低设定成L
所以应该是:
def announce_rule():
print('告知凯凯输入规则')
def get_tempertrue():
while True:
userinput = input()
#开始检查
if not ...:
#如果条件不符合跳回去重新输入
print('输入不合法,请重新输入')
continue
#自动把最高的整数赋值给high,最低温给low
high = ...
low = ...
return high, low
announce_rule()
H, L = get_tempertrue()
print(H, L)
才能避免以上问题,并且正确地把最高温赋值给H,最低温赋值给L
第二、三行同理,
刷题就是为了要对付考试,考试考的就是这个细节,
而不是input output一样就好,
考试一题假设25分,input output一样也不会25满分,顶多给你15~20分
细节出来22~25分,供参考