Python程序控制结构

一、程序的基本结构

程序由三种基本结构组成:

  • 顺序结构
  • 分支结构
  • 循环结构

这些基本结构都有一个入口和一个出口。任何程序都由这三种基本结构组合而成。

二、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]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值