打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第10关笔记

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 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个方向:

石头

剪刀

正向索引

0

1

2

负向索引

-3

-2

-1

编程技能的提升没有捷径,需要你不断的刻意练习。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
山腰课后题参考答案(每天补充)
【Python基础语法】参考 卡西
第10关‘石头剪刀布’习题讲解
【Python基础语法】参考
用python实现用户注册登陆系统
python字典中的键是什么
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服