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、格式化字符 %f
%f的意思是格式化字符串为浮点型,%.1f的意思是格式化字符串为浮点型,并保留1位小数。
a=2.33333
print('a的值留一位小数:%.1f'%a)
print('a的值留两位小数:%.2f'%a)
最后的结果为:
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 b():
a=a+1
print(a)
b()
正确的代码应为:(将 b函数内的 a 声明为全局变量)
a=0
def b():
global a
a=a+1
print(a)
b()
6、练习
练习-剪刀石头布
思路:双方出拳--双方亮拳--判断胜负
import random
# 出拳
punches = ['石头','剪刀','布']
computer_choice = random.choice(punches)
user_choice = ''
user_choice = input('请出拳:(石头、剪刀、布)') # 请用户输入选择
while user_choice not in punches: # 当用户输入错误,提示错误,重新输入
print('输入有误,请重新出拳')
user_choice = input()
# 亮拳
print('————战斗过程————')
print('\n电脑出的拳为%s\n您出的拳为%s'% (computer_choice,user_choice))
# 胜负
print('—————结果—————')
if user_choice == computer_choice: # 使用if进行条件判断
print('平局!')
elif (user_choice == '石头' and computer_choice == '剪刀') or (user_choice == '剪刀' and computer_choice == '布') or (user_choice == '布' and computer_choice == '石头'):
print('你赢了!')
else:
print('你输了!')
注意:
1、第6行user_choice = ''是声明一个变量,由于第7行也是一个赋值语句,故在这里可以把第6行去掉。
2、第9行和第10行,可以合并为一句,如下:
user_choice = input('输入有误,请重新出拳')
进阶练习
优化第20行的elif 条件句为:
elif user_choice == punches[punches.index(computer_choice)-1]:
punches[punches.index(computer_choice)-1]怎么理解??
从内从外一步一步剖析:
computer_choice:电脑的选择
punches.index(computer_choice):电脑的选择在列表punches中的索引值
如果电脑的选择在列表索引位置上减1,与玩家的选择的索引值相等,则判断玩家胜出。
computer_choice | 石头 | 剪刀 | 布 |
punches.index(computer_choice) | 0 | 1 | 2 |
punches.index(computer_choice)-1 | -1 | 0 | 1 |
punches[punches.index(computer_choice)-1] | 布 | 石头 | 剪刀 |
补充一个知识点:
列表的取值有2个方向:
编程技能的提升没有捷径,需要你不断的刻意练习。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。