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('空格字符与空字符不相等')

示例输出:
.
.
空格字符与空字符不相等

书接上回,上一期的每日一练我们留了一个小小的问题,如图:

python 字符串都是数字 python字符串和数字能相加吗_Python


这里我们解释说明一下num在for循环内外的区别,当num变量在for循环里面时,能够记录每个字符的出现次数,当到下一个字符时,上一个字符记录的次数就被重新赋值为0,而如果当num在循环之外时,num就会不断累计。

其实,我们写在总结里的话是很简单、很基础的Python语法知识,每日一练专栏的初衷就是为了能够给Python初学者一个拾遗的地方,各位大佬就请嘴下留情!