python学习 第四章 流程控制

4.1 顺序结构

最常见的程序包结构

4.2 if分支结构

s_age = input('请输入您的年龄')
age = int(s_age)
if age >20:
    print('年龄已经大于20岁了')

if的用法在前面的时候已经多次用过,这里不做过多的介绍,介绍一些小的点

4.2.1 if的条件类型

在Python当中if的条件判断不仅有False和True,可以是任意类型,当以下表达式作为if的条件判断时,也会被当做False来处理:
False None 0 " " () [] {}

s = ''
if s:
    print('s不是空')
else:
    print('s是空')

my_tuple = ()
my_list =[]
my_dict={}
if my_tuple:
    print('元组不是空')
else:
    print('元组是空')

if my_list:
    print('列表不是空')
else:
    print('列表是空')
if my_dict:
    print('字典不是空')
else:
    print('字典是空')

4.2.2 Pass 语句

Python中提供了Pass语句用来进行占位符操作,不会执行任何操作,但是会占据相应位置

4.3 断言

断言类似于if分支,他用于对一个bool类型的表示式进行断言,如果bool表达式的值是True则会继续向下进行,如果是False就是包AssertionError的错误

s_age = input()
age = int(s_age)
assert 20<age<30
print('年靓在20到80之间')

在这里插入图片描述

4.4 循环结构

4.4.1 while循环

while循环同其他语言类似,也不做过多介绍,举一个小的例子,用while循环来遍历一个元组

my_tuple = ('pwc',123,'oi')
i= 0
while i<len(my_tuple):
    print(my_tuple[i])
    i+=1

在这里插入图片描述

4.4.2 for-in循环

for- in循环是专门用于遍历范围,列表元组,和字典等可迭代对象包含的元素,

  1. for in 循环当中的变量值受for-in循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量赋值
  2. for in 循环可用于遍历任何可迭代对象。
    for循环可以用于遍历范围:
s_max = input('请输入您想要计算的程玠')
mx = int(s_max)
result = 1
for num in range(1,1+mx):

    result*=num

print(result)

在这里插入图片描述

4.4.3 使用for-in循环遍历列表与元组

在使用for-in循环遍历列表和元组的时候,列表或元组有几个元素,for-in循环的循环体就会执行几次,针对每个元素执行一次,循环计数器就是一次被赋值为元素的值

my_tuple = ('pwc',4,5,8)
for i in my_tuple:
    print(i)

在这里插入图片描述
循环列表也是相同的原理

my_list = ['ewieu',789,'dwea','wae']
for els in my_list:
    print(els)

在这里插入图片描述
当然除了直接将元组或者列表中的值直接赋值以外,还可通过index索引来对元素进行访问

my_list = ['ewieu',789,'dwea','wae']
# for els in my_list:
#     print(els)
for i in range(len(my_list)):
    print(my_list[i])
    

在这里插入图片描述

4.4.4 使用for-in循环遍历字典

my_dict = {'语文':85,'英语':15,'数学':78}
for key,value in my_dict.items():
    print('key',key)
    print('value',value)
print('-'*30)
for key in my_dict.keys():
    print('key',key)
print('-'*30)
for value in my_dict.values():
    print('value',value)

在这里插入图片描述
假如需要实现一个程序,用于统计列表中各元素出现的次数,由于并清楚列表中有多少个元素, 因此可以考虑定义一个字典,用key值来存放元素种类,用value值来存放出现次数。

src_list = [12,45,4.5,78,'fkit',78,2.4,'flit',4.5]
statistics = {}
for ele in src_list:
    if ele in statistics:
        statistics[ele]+=1
    else:
        statistics[ele]=1

for key,value in statistics.items():
    print(key,'+',value)

在这里插入图片描述

4.4.5 循环使用else

在Python当中,不光if语句可以使用else使用while也可以使用else

4.4.6 嵌套循环

4.4.7 for表达式

for表达式与普通for循环之间的区别主要有两点:

  • 在for关键字之前定义一个表达式,该表达式通常会包含循环计数器
  • for表达式没有循环体,因此不需要冒号
    for表达式最终返回的是列表!!!
a_range = range(10)
a_list = [x*x for x in a_range]
print(a_list)

在这里插入图片描述

a_range = range(10)
a_list = [x*x for x in a_range if x%2==0]
print(a_list)

]
如果将for表达式的方括号换成圆括号将不会生成一个列表,而会生成一个生成器(generator)

4.5 控制循环结构

break, continue,return

4.6 实例

repository = dict()
shop_list = []

def init_repository():
    #初始化很多商品,每个元组代表一个商品
    goods1 = ('1000001','疯狂1',88.8)
    goods2 = ('1000002','疯狂2',59.5)
    goods3 = ('1000003','疯狂3',78.8)
    goods4 = ('1000004','疯狂4',12.5)
    goods5 = ('1000005','疯狂5',8.8)
    goods6 = ('1000006','疯狂6',19.5)

    #把商品入库(放入dict)条码作为key
    repository[goods1[0]]=  goods1
    repository[goods2[0]] = goods2
    repository[goods3[0]] = goods3
    repository[goods4[0]] = goods4
    repository[goods5[0]] = goods5
    repository[goods6[0]] = goods6

def show_goods():
    print('欢迎光临,私人超市')
    print('疯狂超市的商品清单')
    print('%13s%40s%12s'%('条码','商品条码','单价'))

    for goods in repository.values():
        print("%15s%40s%12s"%goods)
def show_list():
    print('='*100)
    if not shop_list:
        print('还没有购买商品')
    else:
        title = '%-5s|%15s|%40s|%10s|%4|%|10s' % \
                ('ID','条码','商品名称','单价','数量','小计')
        print(title)
        print('-'*100)
        sum = 0

        for i ,item in enumerate(shop_list):
            id = i+1
            code = item[0]
            name = repository[code][1]
            price = repository[code][2]
            number = item[1]
            amount = price*number
            sum = sum +amount
            line ='%-5s|%17s|%40s|%12s|%6s|%12s'% \
                  (id ,code,name,price,number,amount)
            print(line)
        print('-'*100)
        print('                              总计、:',sum)
    print('='*100)
def add():
    code =input('请输入商品的条码:\n')
    if code not in repository:
        print('条码输入错误')
        return
    goods = repository[code]
    number = input('请输入购买数量:\n')
    shop_list.append([code,int(number)])
def edit():
    id = input('请输入要修改的购物明细的ID:\n')
    index = int(id)-1
    item =shop_list[index]
    number = input('请输入新的购买数量')
    item[1] = int(number)
def delete():
    id = input('请输入要删除的购物明细项的ID:')
    index = int(id)-1
    del shop_list[index]
def payment():
    show_list()
    print('\n'*3)
    print('欢迎下次光临')
    import os
    os._exit(0)
cmd_dict = {'a':add,'e':edit,'d':delete,'p':payment,'s':show_goods}
def show_command():
    cmd = input("请输入操作指令:\n" +
                '添加(a) 修改(e) 删除(d) 结算(p) 超市商品(s)\n')
    if cmd not in cmd_dict:
        print('不要玩,好不好')
    else:
        cmd_dict[cmd]()
init_repository()
show_goods()
while True:
    show_list()
    show_command()

已标记关键词 清除标记
相关推荐
第1欢迎来到Python世界 1.1 Python简介 视频教学:11分钟 1.2安装Python(Windows安装) 视频教学:8分钟 1.3使用带提示符的解释器 视频教学:10分钟 1.3.1基础知识——Pytllon解释器 1.3.2实例描述 1.3.3实例应用 1.3.4运行结果 1.3.5实例分析 1.4 Python集成开发环境 视频教学:14分钟 1.5保存并执行程序 视频教学:6分钟 1.5.1基础知识——程序的保存和运行 1.5.2实例描述 1.5.3实例应用 1.5.4运行结果 1.5.5实例分析 1.6常见问题解答 1.6.1关于Python版本的问题 1.6.2 Python的print问题 1.6.3关于Python编程的问题 1.7 习题 第2练就扎实的基本功 2.1 Python的编码规则 视频教学:16分钟 2.1.1基础知识——代码缩进与冒号 2.1.2基础知识——使用空行分隔代码 2.1.3基础知识——命名规则 2.1.4基础知识——为代码添加注释 2.1.5基础知识——语句的分隔 2.2数值 视频教学:10分钟 2.3制作超市购物清单 视频教学:7分钟 2.3.1 基础知识——标识符的命名 2.3.2基础知识——变量与赋值 2.3.3基础知识——局部变量 2.3.4基础知识——全局变量 2.3.5实例描述 2.3.6实例应用 2.3.7运行结果 2.3.8实例分析 2.4用户登录验证 视频教学:19分钟 2.4.1基础知识——字符串的声明与表示 2.4.2基础知识——输入与输出 2.4.3实例描述 2.4.4实例应用 2.4.5运行结果 2.4.6实例分析 2.5计算圆的周长和面积 视频教学:13分钟 2.5.1基础知识——算术运算符与算术表达式 2.5.2基础知识——关系运算符与关系表达式 2.5.3基础知识——逻辑运算符与逻辑表达式 2.5.4基础知识——运算符的优先级 2.5.5实例描述 2.5.6实例应用 2.5.7运行结果 2.5.8实例分析 2.6常见问题解答 2.6.1 Python中3种字符串引号的区别 2.6.2 Python中文编码问题 2.7习题 第3控制结构 3.1制作有趣的炒菜流程 视频教学:6分钟 3.1.1基础知识——条件语句 3.1.2实例描述 3.1.3 实例应用 3.1.4运行结果 3.1.5实例分析 3.2九九乘法表 视频教学:10分钟 3.2.1基础知识——循环语句 3.2.2实例描述 3.2.3 实例应用 3.2.4运行结果 3.2.5实例分析 3.3实现关键字搜索功能 视频教学:5分钟 3.3.1基础知识——迭代工具 3.3.2实例描述 3.3.3实例应用 3.3.4运行结果 3.3.5实例分析 3.4为歌曲列表制作新颖的循环模式 视频教学:7分钟 3.4.1基础知识——跳转语句 3.4.2实例描述 3.4.3 实例应用 3.4.4运行结果 3.4.5实例分析 3.5其他语句 视频教学:6分钟 3.5.1 基础知识——pass语句 3.5.2基础知识——del语句 3.5.3基础知识——exec语句 3.6常见问题解答 3.6.1 Python中语句嵌套问题 3.6.2 Python中语句缩进问题 3.6.3 Python中循环语句问题 3.7 习题 第4可复用的函数和模块 4.1 Python程序的结构 视频教学:4分钟 4.2计算相对年龄 视频教学:4分钟 4.2.1 基础知识——函数的定义 4.2.2实例描述 4.2.3实例应用 4.2.4运行结果 4.2.5实例分析 4.3验证用户注册信息 视频教学:11分钟 4.3.1基础知识——函数形参与默认参数值 4.3.2实例描述 4.3.3实例应用 4.3.4运行结果 4.3.5实例分析 4.4判断是否闰年 视频教学:5分钟 4.4.1基础知识——函数的返回值 4.4.2实例描述 4.4.3 实例应用 4.4.4运行结果 4.4.5实例分析 …… 第5数据结构 第6字符串与正则表达式 第7面向对象编程 第8基于文件的交互 第9构造可溶错得应用程序 第10持久化的数据 第11让信息自由联通——Python网络功能 第12应知应会技能之HTML处理 第13应知应会技能之XML处理 第14图形用户界面 第15Python的Web开发之Django框架应用 附录各习题参考答案
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页