作者panex0845 (胖克思)
看板Python
标题Re: Debug_刷题答案 Partial Accept 疑惑
时间Wed Oct 18 03:34:02 2023
※ 引述《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分,供参考
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.229.208.148 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1697571244.A.6C4.html
1F:嘘 aalexx: 竞赛题输入说怎样就是怎样,题目定义好了,又不是面试什麽10/18 05:17
2F:→ aalexx: 都是自己假设的10/18 05:17
讲白痴话 刷题不面试不考试 你刷身体健康的?
这就是书本的不会告诉新人的细节 也是新人最容易陷入的误区
平时不养成作答细节 考试你答的出来才有鬼
另外看你在本板的推文 没什麽建设性的回应 只会嘘人
这边真的不需要你 败坏本板风气
※ 编辑: panex0845 (27.53.144.252 台湾), 10/18/2023 06:48:55
3F:→ lycantrope: constraints问都不问就这样写,我也是笑了10/18 12:18
4F:推 venomsoul: 呃说真的我就是那个刷题刷健康的10/19 03:32
5F:→ aegius1r: 没必要吧10/19 08:07
6F:嘘 vup4jp6: 擅自改变输入规则 会给你对? 程式码格式只给UI用? 10/20 16:15
7F:→ vup4jp6: 沟通格式跟协定呢? 不管不顾?10/20 16:16
8F:→ vup4jp6: 没出事都好说 出事了多一个少一个字元我都跟你翻脸10/20 16:27
你不懂我在讲什麽 建议多看几次 重新理解
这题很明显是使用者导向的题目
一定要就可能的情形抛出错误分数才会高
你当然可以不写 也不能说你错 但是你拿的到高分吗
※ 编辑: panex0845 (39.9.231.108 台湾), 10/20/2023 19:17:30
9F:嘘 karco: 这题不是要考这个吧… 10/23 10:14
10F:→ karco: 跟原Po要问的是两回事 10/23 10:14
11F:→ karco: 当然你讲的在面试时是要提出来跟考官讨论没错 10/23 10:14
12F:嘘 ddavid: 把刷题跟面试的目的性弄混了啦 10/23 14:29
13F:→ zerof: 奇葩 10/25 01:21