别急别急,先看完
(从初学者出发)
从键盘输入两个数,求它们的和并输出
作者 陈春晖
单位 浙江大学
本题目要求读入2个整数A和B,然后输出它们的和。
输入格式:
在一行中给出一个被加数
在另一行中给出一个加数
输出格式:
在一行中输出和值。
输入样例:
在这里给出一组输入。例如:
18
-48
输出样例:
在这里给出相应的输出。例如:
-30
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
看完题目,是不是觉得很简单,直接用Python中的读取函数input()来读取需要输入的数据,然后转换为int型(因为input输入进来的数据为str类型,所以需要进行数据类型转换),然后直接输出相加,当然你也可以选择再用一个变量来接收这个数据并输出。
解答代码:
a = int(input())
b = int(input())
print(a+b)
然后你就AC了,因为这里老师出题没那么恶心。
输入格式为:
在一行中给出一个被加数
在另一行中给出一个加数
要是是一行接收两个数据呢?
这是不是得考虑一下怎么弄了
比如下面这个题目
从键盘输入三个数到a,b,c中,按公式值输出
在同一行依次输入三个值a,b,c,用空格分开,输出 b*b-4*a*c的值
输入格式:
在一行中输入三个数。
输出格式:
在一行中输出公式值。
输入样例:
在这里给出一组输入。例如:
3 4 5
输出样例:
在这里给出相应的输出。例如:
-44
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
看完题目是不是有一种冲动:
a = int(input())
b = int(input())
c = int(input())
然后你自信的提交代码.....
竟然报错了?!
Traceback (most recent call last): File "/tmp/a.py", line 1, in <module> a = int(input()) ValueError: invalid literal for int() with base 10: '3 4 5'
这个错误是因为你试图将包含空格的字符串"3 4 5"转换为整数,而int()函数只接受单个数字作为输入。
那么怎么办呢,我的一个方法是将包含空格的输入转换为整数,可以先使用split()方法将其分割成多个部分,然后再进行转换。(其实是有很多方法的,可以交流学习)
解答代码:
input_str = input()
numbers = input_str.split()
list = [int(num) for num in numbers]
result = list[1]*list[1] - 4*list[0]*list[2]
print(result)
一个小知识点:
在这里,list = [int(num) for num in numbers]
的意思是对于numbers
列表中的每个元素num
,都将其转换为整数类型并添加到新的列表int_list
中。
这是列表推导式的一种用法,是一种简洁的方法来创建列表。
最后:
如果你有什么其他的解决办法,欢迎评论区show your code~