一、顺序结构
顺序结构:从上到下,从左到右,遇到有缩进的方法或类方法直接跳过。
二、分支结构(选择结构)
1、if语句基本结构
if 判断条件:
书写条件成立(真),执行的代码
# 1. 使用 input 获取用户的年龄, 类型是 str
age = input('请输入你的年龄:')
# 2. 判断年龄是否满足 18 岁
if int(age) >= 18: # 字符串和 int 类型不能比大小, 先类型转换,再比大小
# 3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了'
print('满 18 岁了,可以进入网吧为所欲为了')
print('我和 if 判断没有关系,不管怎样,都会执行')
顶格书写,没有缩进的代码,和 if无关, 不管条件是否成立,都会执行。
注意:
(1)if 是一个关键字, 和后续的判断条件之间需要一个空格。
(2)判断条件后边需要一个冒号,不要少了。
(3)冒号之后,回车,代码需要缩进, 在 pycharm 中会自动进行缩进, 一般是 4 个空格 或者 一个 tab 键.
(4) 所有在 if 代码下方的缩进中书写的代码,属于 if 语句的代码块, 判断条件为 True 的时候会执行。
(5)if 代码块中的代码,要么都执行,要么都不执行。
(6)if 代码块结束之后, 代码要顶格书写(不再有缩进), 表示是和 if 无关的代码
2、if……else语句
a = True
if 条件语句:
条件为True时执行语句
else:
条件False时执行语句
注意:
(1) if与else互斥,每次运行代码只可能执行其中的一个子句 分支结构至少得有一个if语句,不能只有else语句。
(2)else 是关键字, 后边需要冒号。
(3)冒号之后回车,同样需要缩进。
(4)处于 else 代码下方缩进中的内容,属于 else 的代码块。
(5)if 和 else 的代码块, 只会执行其中的一个。
(6) else 需要结合 if 使用。
(7)if else 之间不能有其他顶格书写的内容
3、if……elif……else……语句
if 条件语句1:
条件为True时执行语句
elif 条件语句2:#前置条件为False时
条件为True时执行语句
else:
条件为False时执行语句
注意:
(1) elif 也是关键字,后边和判断条件之间需要一个空格,判断条件之后需要冒号。
(2) 冒号之后回车需要缩进, 处在这个缩进中的的代码表示是 elif 的代码块。
(3)在一个 if判断中,可以有很多个 elif 。
(4) 只有 if 的条件不成立,才会去判断 elif 的条件。
(5) 在一个if 中, 如果有多个 elif , 只要有一个条件成立,后续的所有都不再判断。
(6) if elif else 结构, 和 if 的缩进相同的只能是 elif 和 else,如果是其他的,就表示 这个判断结构结束了。
4、if 语句嵌套
if 判断条件1:
判断条件1成立,执行的代码
if 判断条件2:
判断条件2成立,执行的代码
else:
判断条件2不成立,执行的代码
else:
判断条件1不成立,执行的代码
- 例题:判断输入的数字能否被2和3整数?
number = int(input("请输入一个数:"))
if number % 2 == 0:
if number % 3 == 0:
print("能被2整除,也能被3整除!")
else:
print("能被2整除,不能被3整除!")
else:
if number % 3 == 0:
print("不能被2整除,能被3整除!")
else:
print("不能被2和3整除!")
5、案例—猜拳游戏
剪刀 石头 布
剪刀 赢 布
石头 赢 剪刀
布 赢 石头
- 案例的步骤:
自己出拳(石头(1)/剪刀(2)/布(3)) input (player)
电脑随机出拳 (使用随机数模块(工具)完成) (computer)
- 判断输赢
3.1 玩家胜利
玩家(player) | 电脑(computer ) | 输赢情况 |
---|---|---|
1 | 2 | 玩家赢 |
2 | 3 | 玩家赢 |
3 | 1 | 玩家赢 |
1 | 1 | 平局 |
2 | 2 | 平局 |
3 | 3 | 平局 |
2 | 1 | 电脑赢 |
3 | 2 | 电脑赢 |
1 | 3 | 电脑赢 |
随机出拳
案例中需要电脑随机出拳,即随机出 1 2 3
在 Python 中想要随机获得整数数字可以使用如下方法
- 导入随机数工具包
import random
- 使用工具包中的工具产生指定范围内的数字
random.randint(a, b) # 产生[a, b] 之间的随机整数,包含 a b 的
import random # 这行代码习惯性的放在第一行
num = random.randint(1, 3)
print(num)
- 具体代码:
import random
# 1. 自己出拳(石头(1)/剪刀(2)/布(3)) input (player)
player = int(input('请出拳石头(1)/剪刀(2)/布(3):')) # 不要忘了类型转换
# 2. 电脑随机出拳 (使用随机数模块(工具)完成) (computer)
computer = random.randint(1, 3)
# 3. 判断输赢
# 3.1 玩家胜利
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
print('恭喜你获得胜利')
# 3.2 平局 player == computer
elif player == computer:
print('平局')
# 3.3 玩家输了 else
else:
print('输了, 不要放弃, 再来一局')
三、循环结构
循环结构:for,while
1、for循环
如果想要遍历一个范围区间的的元素,可使用for循环来进行遍历。
遍历的定义:访问一个范围区间的每一个元素,按照顺序进行访问。
for 判断条件:
执行语句
- 1到100所有的整数和
tota1 = 0#用来存储运算结构
for i in range(1,101):#左闭右开取值范围
tota1 +=i
print("1到100的和= %d" % tota1)
2、while循环
while循环是没有do……while这种语法。
while 判断条件:
执行语句
- 例题:求1到10所有的整数和
i = 1
tota1 = 0
while i<=10:
tota1 += i
print(i)
i += 1
print("1到10所有的整数和= %d" % tota1)
总结:知道循环次数建议使用for,不知道循环次数建议使用while
四、其他
1、pass语句
pass语句:空语句,又叫占位语句,作用是啥都不干,保持程序结构的完整性。
2、break和continue
continue:结束本轮循环,继续后面的循环
- 例题: 如果i等于5不打印,继续打印后面数值
for i in range(1,11):
if i == 5:
continue
else:
print(i)
break:结束整个循环体
- 例题:如果i等于5,则停止打印后面数值
for i in range(1,11):
if i == 5:
break
else:
print(i)
注意:break和continue的作用在for循环和while循环中作用一样
3、range()函数
range函数是Python中的内置函数,用于生成一系列连续的整数,一般用于for循环体中。
- range()内一个参数
for i in range(11):#起始位从0开始,终止位11结束
print(i)
#输出0 1 2 3 4 5 6 7 8 9 10
- range()内两个参数
for i in range(1,11):#起始位从1开始,终止位11结束
print(i)
#输出1 2 3 4 5 6 7 8 9 10
- range()内三个参数
for i in range(1,11,2):#起始位从1开始,终止位11结束,步长为2
print(i)
#输出1 3 5 7 9
range()函数的优点:
不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素。