目录
程序的三大流程
一、判断语句if
01 if 语句语法格式
02 if-else语句语法格式
03 elif语句语法格式
04 if 的嵌套
综合应用——石头剪刀布
二、循环语句while
01 while语句语法格式
02 计算0~100之间所有偶数的累计求和结果
03 break 与 continue
04 while循环嵌套——九九乘法表
三、函数
01函数的定义
02函数的调用
03函数的参数
04函数的返回值
05函数的嵌套调用
06使用模块中的函数
pyc文件(了解)
程序的三大流程
顺序——从上到下,顺序执行
分支——根据条件判断,决定执行代码的分支
循环——让特定代码重复执行
一、判断语句if
01 if 语句语法格式
if 要判断的条件:
条件成立时,要做的事情
#根据年龄判断是否成年
age =19
if age>=18:
print("已成年")
02 if-else语句语法格式
if 要判断的条件:
条件成立时,要做的事情
else:
条件不成立时,要做的事情
#根据年龄判断是否成年
age =15
if age>=18:
print("已成年")
else:
print("未成年")
if 要判断的条件:
条件成立时,要做的事情
#根据年龄判断是否成年
age =19
if age>=18:
print("已成年")
02 if-else语句语法格式
if 要判断的条件:
条件成立时,要做的事情
else:
条件不成立时,要做的事情
#根据年龄判断是否成年
age =15
if age>=18:
print("已成年")
else:
print("未成年")
if 要判断的条件:
条件成立时,要做的事情
else:
条件不成立时,要做的事情
if 和 else 语句以及各自的缩进部分作为一个完整的代码块
03 elif语句语法格式
if 条件1:
条件1成立时,执行的代码
elif 条件2:
条件1成立时,执行的代码
elif 条件3:
条件3成立时,执行的代码
……
else:
以上条件都不满足时执行的代码
04 if 的嵌套
if 条件1:
条件1成立时,执行的代码
elif 条件2:
条件1成立时,执行的代码
elif 条件3:
条件3成立时,执行的代码
……
else:
以上条件都不满足时执行的代码
在之前条件成立的执行语句中,再增加条件判断
"""
火车站安检
1.判断是否有车票——有则可以进站,无则不许进站
2.判断携带违禁物品数量——携带则不许上车,=0则安检通过
"""
has_ticket = True
dangerous_goods = 1
if has_ticket == True:
print("检票通过,请过安检")
#嵌套部分
if dangerous_goods == 0:
print("安检通过,请上车")
else:
print("携带危险物品,禁止上车")
else:
print("您还未购买车票,请先购买车票再来检票")
综合应用——石头剪刀布
需求:
- 从控制台输入要出的拳——石头(1)、剪刀(2)、布(3)
- 电脑随机出拳
- 比较胜负
# 随机数的工具包
import random
player = int(input("请输入您要出的拳头:石头(1)、剪刀(2)、布(3)"))
# 调用随机数的工具包,限制随机数范围为1-3
computer = random.randint(1,3)
print("玩家出的是%d,电脑出的是%d" % (player, computer))
# 比较胜负 ——石头胜剪刀—剪刀胜布——布胜石头
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
print("玩家获胜")
elif player == computer:
print("平局")
else:
print("电脑获胜")
二、循环语句while
01 while语句语法格式
定义计数器的值
while 条件(判断计数器是否达到目标次数):
条件满足时,执行的代码
计数器=计数器+1
# 让helloworld循环输出三次
i = 0
while i < 3:
print("helloworld")
i = i + 1
定义计数器的值
while 条件(判断计数器是否达到目标次数):
条件满足时,执行的代码
计数器=计数器+1
# 让helloworld循环输出三次
i = 0
while i < 3:
print("helloworld")
i = i + 1
当while内部代码块未对计数器进行定义,计数器一直满足while循环条件时,代码会进入while死循环,需强行终止程序。
02 计算0~100之间所有偶数的累计求和结果
"""
编写循环,确认要计算的数字
添加结果变量,在循环内部处理计算结果
"""
result = 0
i = 0
while i <= 100:
if i % 2 == 0:
result += i
i += 1
print("0~100之间所有偶数的累计求和结果为%d" % result)
03 break 与 continue
- break——某一条件满足时,跳出整个循环
- continue——某一条件满足时,不执行本次循环的后续代码。继续从循环的条件判断处运行
- break——某一条件满足时,跳出整个循环
- continue——某一条件满足时,不执行本次循环的后续代码。继续从循环的条件判断处运行
注意在使用continue关键字时,需要确定循环的计数是否修改,否则可能会出现死循环
# 输出10以内除5之外的所有数字
i = 0
while i <= 10:
if i == 5:
i += 1
continue
print(i)
i += 1
04 while循环嵌套——九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print("%d * %d = %d t" % (j, i, i * j), end="")
j += 1
print("")
i += 1
运行结果如下:
三、函数
函数就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用。
在开发程序时使用函数可以提高编码效率,以及实现代码的重用。
01函数的定义
def 函数名( ):
函数封装的代码
- 函数名应该能够表达函数封装代码的功能,方便后续的调用
- 函数名称的命名应该符合标识符的命名规则
- 定义好的函数只表示函数封装了一段代码。如果不主动调用函数,函数是不会执行的。
- 如果想要进入函数内部一步一步运行函数,需要在函数调用行设置断点,然后点击Step Into(F7)来执行函数。此时若使用Step Over(F8)会一步把函数运行完。
02函数的调用
def 函数名( ):
函数封装的代码
在函数所在文件调用函数,直接通过 函数名() 调用即可。
注意:
- 函数调用只能在函数定义之后,否则会报错。
- 函数的注释方式见下面的代码,此时把光标放在函数调用处,可以看到注释。
def say_hi():
"""打招呼"""
print("Hi!")
# 函数调用
say_hi()
03函数的参数
函数的参数将需要处理的数据,在调用函数时,传递到函数内部
def 函数名 ( 参数1, 参数2,…… ):
函数封装的代码
函数名(变量或常量1, 变量或常量2,……) #函数的调用
以下代码实现通过调用sum_2_num()函数,对键盘输入的两个数求和。
def sum_2_num(num1, num2):
"""
两个数的求和
:param num1: 求和的第一个数字
:param num2: 求和的第二个数字
"""
result = num1 + num2
print("%d + %d = %d" % (num1, num2, result ))
a = int(input("请输入数字1"))
b = int(input("请输入数字2"))
sum_2_num(a, b)
- 形参:定义函数时,函数名后的参数,是用来接收参数的,在函数内部作为变量使用。如上例中的 num1 和 num2.
- 实参:调用函数时,函数名后的参数,用来把数据传递到函数内部。如上例中的 a 和 b 。
对于含有参数的函数注释方法:
1. 将光标放在函数名处,附近会出现一个小,点击在选择框中选择Isert a documentation string stub选项。
2. 点击后在出现的注释中补充函数和参数信息即可
04函数的返回值
返回值时函数完成工作后,最后给调用者的一个结果。
在函数中使用 return 关键字可以返回结果。在调用函数时,可以使用变量来接收函数返回的结果。
def sum_2_num(num1, num2):
"""两个数求和"""
return num1 + num2
a = int(input("请输入数字1"))
b = int(input("请输入数字2"))
result = sum_2_num(a, b)
print("%d + %d = %d" % (a, b, result))
注意:return表示返回,return之后的代码不会被执行
05函数的嵌套调用
需求一:定义一个能够打印任意重复次数的分割线
def print_line(char, times):
print(char * times)
需求二:定义一个函数能够打印5行的分割线,且要求分割线符合需求一
提示:针对中需求的变化,不要轻易修改之前已经完成的,能够正常执行的函数。可以调用函数进行实现。
def print_line(char, times):
"""输出指定次数的指定字符"""
print(char * times)
def print_lines(char, times):
"""输出5行print_line()函数"""
i = 0
while i < 5:
print_line(char, times)
i += 1
print_lines("+", 50)
# 下一小节用到,本节无用
a = "helloworld"
将本例中的函数中的print_lines("+", 50)行删去,保存代码为 打印分割线.py 文件。
06使用模块中的函数
- 每一个扩展名为 .py 的源代码文件都是一个模块
- 模块就好比是一个工具包,模块中定义的全局变量、函数都是模块能够提供给外界直接使用的工具。
- 要想使用模块中的工具,需要用关键字 import 导入这个模块。导入之后使用 模块名.变量 和 模块名.函数 的方式使用模块中的变量或函数。
新建源程序文件,调用 打印分割线.py 文件中的,print_line(char, times)函数,方法如下:
import 打印分隔线 # 导入模块
打印分隔线.print_line("-", 50) # 调用模块中的函数
print(打印分隔线.a) # 调用模块中的变量
注意:
- 在使用import关键字时,会先运行一遍模块。若模块中有print输出函数,则会先将模块中的结果输出。
- 模块名也是标识符,
pyc文件(了解)
浏览程序目录时会发现有一个__pycache__的文件夹,文件夹下有一个名为 打印分隔线.cpython-39.pyc 的文件。cpython-39 表示Python解释器的版本。pyc文件是python解释器将模块的源码转化为字节码形成的文件,目的是加快运行速度。
Python 运行时,首先处理源代码,编译生成一个二进制字节码;然后对字节码进行处理,生成CPU能够识别的机器码。若你在运行程序之前修改了源代码,那么在运行时字节码将自动重新创建。



