Python每日一练
文章目录
- Python每日一练
- 问题:
- 代码实现
- 示例输入:
- 示例输出:
- 总结
- 示例输出:
问题:
编写一个程序,将两个数字字符串相加,并将其和作为字符串返回。
例如,假设我们有字符串“112”和“20”。然后,程序应该返回数字112和20的和,即132。
定义函数add_numbers(),它接受两个参数(字符串数字)。
在函数内,检查参数是否为空字符串或None。如果是,则返回Invalid Operation。
否则,将两个数字相加,并将和作为字符串返回。
假设:用户只会输入数字字符串。
题目来源:PythonTip
代码实现
代码如下(示例):
def add_numbers(num1, num2):
# 此处编写代码
if num1 == '' or num1 == 'None': # 检查参数是否为空字符串或None
return 'Invalid Operation'
if num2 == '' or num2 == 'None':
return 'Invalid Operation'
return str(eval(num1) + eval(num2)) # 进行一系列强制转换
# 获取用户输入num1 和 num2
num1 = input()
num2 = input()
# 调用函数
result = add_numbers(num1, num2)
# 打印和
print(result)
print(type(result))
示例输入:
111
111示例输出:
222
<class ‘str’>
总结
Python中input()函数接收的参数默认会转换成字符串类型,即使输入为数值类型,即使没有加引号,所以方便输入的数值型参数方便运算,一般使用eval()函数处理。
eval()函数主要是用来实现python中各种数据类型与str之间的转换。字符串中包含的什么,通过eval函数就可以输出什么。比如字符串里面包含的字典就输出字典,包含的列表就输出列表,但是字符串相应的格式一定要输入正确,否则会报错。
使用方法如下:
#字符串转换成列表:
string = "[1,2,3,4]"
print(type(string))
list1=eval(string)
print(list1)
print(type(list1))
示例输出:
<class ‘str’>
[1, 2, 3, 4]
<class ‘list’>
此外,Python初学者一定要区分字符串中的空格字符与空字符的区别,如下:
# 转大写
s1 = ' '
s2 = ''
print(s1)
print(s2) # 二者打印效果完全相同,但实际是不一样的,只是在计算机终端或者说你的控制台的表现形式相等而已
if s1 == s2: # 做一个简单的判定就一目了然
print('空格字符与空字符是相等的')
else:
print('空格字符与空字符不相等')
示例输出:
.
.
空格字符与空字符不相等
书接上回,上一期的每日一练我们留了一个小小的问题,如图:
这里我们解释说明一下num在for循环内外的区别,当num变量在for循环里面时,能够记录每个字符的出现次数,当到下一个字符时,上一个字符记录的次数就被重新赋值为0,而如果当num在循环之外时,num就会不断累计。
其实,我们写在总结里的话是很简单、很基础的Python语法知识,每日一练专栏的初衷就是为了能够给Python初学者一个拾遗的地方,各位大佬就请嘴下留情!