1、参数传值
def A(a,b):
(计算过程)
def B(c,d):
(计算过程)
A(e,f)
B(g,h)
案例中的第 7、8 行,我们调用了函数 A、B,这里要注意的是 A(e,f) 中的 e,f 对应的是我们定义函数 A(a,b) 中的 a,b,即 e 的值传给 a;f 的值传给 b。同理函数 B 也是如此,所以我们记住的应该是参数位置,而不一定是参数名,例如下面的例子:
def A(a,b):
print('第一个参数的值为'+str(a))
print('第二个参数的值为'+str(b))
a=1
b=2
A(b,a)
最后输出的结果是:
第一个参数的值为2
第二个参数的值为1
下图为正确的传参方式,同学们要记得避免这个雷区。(避免这个错误的最好方式是对应位置的变量名命名一致)
2、格式化字符 %f
%f的意思是格式化字符串为浮点型,%.1f的意思是格式化字符串为浮点型,并保留1位小数。
a=2.33333
print('a的值留一位小数:%.1f'%a)
print('a的值留两位小数:%.2f'%a)
最后的结果为:
a的值留一位小数:2.3
a的值留两位小数:2.33
3、math 模块
①、调用:import math
②、函数:ceil () :将得出来的数值向上取整
③、使用:math.ceil(参数值)
4、return
函数带有返回值(return)时,执行函数并打印后,打印值为函数的返回值(默认为元组形式输出),如下例子:
def A():
a=1
b=2
return a,b
print(A())
最后的结果:元组(1, 2)。
若想返回列表形式,可将代码修改为以下形式:
def A():
a=1
b=2
return [a,b]
print(A())
5、易错点
①、input 函数打印出来的为字符型,数据类型不同时,是不同就行计算的
例如:
a=1
b=input('请输入数字')
print(a+b)
正确的应该为:
自动检测
a=1
b=int(input('请输入数字'))
print(a+b)
②、两个数对比时,要判断两方的数据类型是否一致,否则无法比较
例如:
types=input('请输入数字:')
if types == 1:
print('数据类型一致')
else:
print('数据类型不一致')
正确的应该为:('1’中不要出现空格)
types=input('请输入数字:')
if types == '1':
print('数据类型一致')
else:
print('数据类型不一致')
③、全局变量和局部变量的问题:以下代码的第 3 行 a=a+1 中,系统无法判断第二个 a 是全局的还是局部的,导致程序运行报错
a=0
def A():
a=a+1
print(a)
A()
正确的代码应为:(将 A 函数内的 a 声明为全局变量)
a=0
def A():
global a
a=a+1
print(a)
A()