一、程序的基本结构
程序由三种基本结构组成:
- 顺序结构
- 分支结构
- 循环结构
这些基本结构都有一个入口和一个出口。任何程序都由这三种基本结构组合而成。
二、Python分支结构
根据判断条件结果而选择不同向前路径的运行方式。
1.单分支结构
user_input = input("请输入彩票号码:")
if user_input == "10002":
print("恭喜你中大奖了")
print("查询结束。")
2.二分支结构
# 语法:
# if <条件> :
# <语句块1>
# else
# <语句块2>
input_lottery_num = eval(input("请输入彩票号码:"))
if input_lottery_num == 10002:
print("恭喜你中大奖了")
else:
print("很遗憾未中大奖")
print("查询结束。")
# 紧凑形式:适用于简单表达式的二分支结构
# <表达式1> if <条件> else <表达式2>
input_lottery_num = input("请输入彩票号码:")
print("恭喜你中大奖了") if input_lottery_num == "10002" else print("很遗憾未中大奖")
print("查询结束。")
3.多分支结构
# 语法:
# if <条件1> :
# <语句块1>
# elif <条件2> :
# <语句块2>
# else :
# <语句块N>
input_lottery_num = eval(input("请输入彩票号码:"))
if input_lottery_num == 10002:
print("恭喜你中大奖了")
elif input_lottery_num == 20001:
print("恭喜你中参与奖了")
else:
print("很遗憾未中任何奖")
print("查询结束。")
4.条件判断及组合
操作符 | 描述 |
---|---|
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
and | 两个条件的逻辑与 |
or | 两个条件的逻辑或 |
not | 单个条件的逻辑非 |
num1 = 1
num2 = 2
print(num1 < num2)
print(num1 <= num2)
print(num1 > num2)
print(num1 >= num2)
print(num1 == num2)
print(num1 != num2)
print(num1 < num2 and num1 > num2)
print(num1 < num2 or num1 > num2)
print(not (num1 != num2))
# 重点提一下,在Python里面可以连续判断:
num3 = 3
print(num3 > num2 > num1)
# ====== 输出结果如下 ====== #
True
True
False
False
False
True
False
True
False
True
三、循环结构
循环里面有控制保留字,作用如下:
break
:跳出并结束当前循环continue
:结束当次循环
(一)for循环
# 基础语法
# for <循环变量> in <遍历结构> :
# <语句块>
name_l = ['张三','李四','王五']
for _name in name_l:
print("{}您好,欢迎光临。".format(_name))
# 升级语法
# for <循环变量> in <遍历结构> :
# <语句块1>
# else :
# <语句块2> # 只有当循环正常结束才执行(不是break、return跳出的情况下才执行)
order_name_l = ['张三','李四','王五']
fact_name_l = []
for _order_name in order_name_l:
if _order_name == "张三":
continue # 这种跳出是不影响for后的else中代码块的执行
elif _order_name == "赵六":
break # 这种跳出会直接跳到for else之后的代码块
print("{}您好,欢迎到店。".format(_order_name))
fact_name_l.append(_order_name)
else:
print("预定顾客{}人,实际到店{}人".format(len(order_name_l),len(fact_name_l)))
print("结束")
# ====== 输出结果如下 ====== #
张三您好,欢迎光临。
李四您好,欢迎光临。
王五您好,欢迎光临。
李四您好,欢迎到店。
王五您好,欢迎到店。
预定顾客3人,实际到店2人
结束
(二)while循环
# 基础语法
# while <条件>:
# <语句块>
is_win_num = 3
my_num = 0
while my_num != is_win_num :
print("当前号码是{},未中奖".format(my_num))
my_num += 1
print("结束")
# 升级语法
# while <条件>:
# <语句块1>
# else :
# <语句块2> # 只有当循环正常结束才执行(不是break、return跳出的情况下才执行)
is_win_num = 3
my_num = 0
while True :
if my_num != is_win_num :
print("当前号码是{},未中奖".format(my_num))
elif my_num == is_win_num :
print("当前号码是{},恭喜您中奖了".format(my_num))
break # 这儿直接跳出while循环,因为用的break所以下面的else里的代码块不会执行
my_num += 1
else:
print("很遗憾没有中奖哦!")
print("结束")
# ====== 输出结果如下 ====== #
当前号码是0,未中奖
当前号码是1,未中奖
当前号码是2,未中奖
结束
当前号码是0,未中奖
当前号码是1,未中奖
当前号码是2,未中奖
当前号码是3,恭喜您中奖了
结束
(三)列表推导式
列表推导式最终得到的是一个列表。
语法:[返回值 for循环]
每次方括号中的for循环结束都会产生一个返回值(这个返回值会成为列表中的元素),如果有嵌套循环,则当最深层的for循环结束时就会产生一个返回值,可以通过在这个返回值的基础上进行计算得到更丰富的内容。
# 看一个例子:
# 现在我们创建一个my_list列表,往里面添加0~10
# 首先用for循环实现
my_list1 = []
for item in range(3):
my_list1.append(item + 1)
print(my_list1)
# 上面的代码等同于使用列表推导式的如下代码:
my_list2 = [item + 1 for item in range(3)]
print(my_list2)
# ====== 输出结果如下 ====== #
[1, 2, 3]
[1, 2, 3]