Re: Debug_刷题答案 Partial Accept 疑惑

楼主: panex0845 (胖克思)   2023-10-18 03:34:02
※ 引述《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分,供参考
作者: aalexx (aalexx.S)   2023-10-18 05:17:00
竞赛题输入说怎样就是怎样,题目定义好了,又不是面试什么都是自己假设的
作者: lycantrope (阿宽)   2023-10-18 12:18:00
constraints问都不问就这样写,我也是笑了
作者: venomsoul (不怕太太)   2023-10-19 03:32:00
呃说真的我就是那个刷题刷健康的
作者: aegius1r (SC)   2023-10-19 08:07:00
没必要吧
作者: vup4jp6 (精锐猫奴)   2023-10-20 16:15:00
擅自改变输入规则 会给你对? 程式码格式只给UI用?沟通格式跟协定呢? 不管不顾?没出事都好说 出事了多一个少一个字符我都跟你翻脸
作者: karco (karco)   2023-10-23 10:14:00
这题不是要考这个吧…跟原Po要问的是两回事当然你讲的在面试时是要提出来跟考官讨论没错
作者: ddavid (谎言接线生)   2023-10-23 14:29:00
把刷题跟面试的目的性弄混了啦
作者: zerof (猫橘毛发呆雕像)   2023-10-25 01:21:00
奇葩

Links booklink

Contact Us: admin [ a t ] ucptt.com