IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python基础04 控制语句 -> 正文阅读

[Python知识库]python基础04 控制语句

1 选择结构

1.1单分支结构

if 条件表达式:
语句/语句块
条件表达式:可以是逻辑表达式、关系表达式、算术表达式等。
语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致

条件表达式的值为 False 的情况如下
False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空 range 对象、空迭代对象
条件表达式中,**不能有赋值操作符“=”**用’’==’'代替
在这里插入图片描述

1.2双分支结构

if 条件表达式 :
语句 1/语句块 1
else:
语句 2/语句块 2
在这里插入图片描述
三元条件运算符
用来在某些简单双分支赋值情况,格式如下:

条件为真时的值 if (条件表达式) else 条件为假时的值
num = input("请输入一个数字")
print( num if int(num)<10 else "数字太大")

1.3多分支结构

if 条件表达式 1 :
	语句 1/语句块 1
elif 条件表达式 2:
	语句 2/语句块 2
.
.
.
elif 条件表达式 n :
	语句 n/语句块 n
[else:
	语句 n+1/语句块 n+1
]

在这里插入图片描述

1.4 选择结构嵌套

例子:输入一个分数。分数在 0-100 之间。90 以上是 A,80 以上是 B,70 以上是 C,60
以上是 D。60 以下是 E。

该方法代码更简洁;
score = int(input("请输入一个0-100的数字:"))
degree = "ABCDE"
num = 0
if score >100 and score <0:
	score = int(input("重新输入:"))
else:
	num =  score // 10
	if num <6:num = 5
	print('分数是{0},等级是{1}'.format(score,degree[9-num]))

2 循环结构

2.1 while循环

while 条件表达式:
	循环体语句

2.2 for循环

for 变量 in 可迭代对象:
	循环体语句
d = {'name':'gao'}
for i in d.keys(): #遍历字典的所有key
	print(i)
for i in d.values():
	print(i) #遍历字典的所有值
for i in d.items():
	print(i) # 遍历字典所有的键值对

Python 包含以下几种可迭代对象:
1. 序列。包含:字符串、列表、元组
2. 字典
3. 迭代器对象(iterator)
4. 生成器函数(generator)
5. 文件对象

2.3 break和continue语句

1 break
可用于while和for循环,用来结束整个循环。当有嵌套循环时,break跳出最近一层循环。

while True:
	a = input("请输入一个字符(输入 Q 或 q 结束)")
	if a.upper()=='Q':
		print("循环结束,退出")
		break
	else:
		print(a)

2 continue语句
句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最近的一层循环

要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和
薪资明细,以及平均薪资

empNum = 0
salarySum= 0
salarys = []
while True:
    s = input("请输入员工的薪资(按 Q 或 q 结束)")
    if s.upper()=='Q':
        print("录入完成,退出")
        break
    if float(s)<0:
        continue
    empNum +=1
    salarys.append(float(s))
    salarySum += float(s)
print("员工数{0}".format(empNum))
print("录入薪资:",salarys)
print("平均薪资{0}".format(salarySum/empNum))

2.4 else语句

循环语句中可加入一个else语句,如果循环没有被break结束,则会执行else语句,否则不执行。格式为:

while 条件表达式:
	循环体
else:
	语句
	
for 变量 in 可迭代对象:
	循环体
else:
	语句块

员工一共 4 人。录入这 4 位员工的薪资。全部录入后,打印提示“您已经全部录入 4 名员工的薪资”。最后,打印输出录入的薪资和平均薪资

salarySum= 0
salarys = []
for i in range(4):
	s = input("请输入一共 4 名员工的薪资(按 Q 或 q 中途结束)")
	if s.upper()=='Q':
		print("录入完成,退出")
		break
	if float(s)<0:
		continue
	salarys.append(float(s))
	salarySum += float(s)
else:
	print("您已经全部录入 4 名员工的薪资")
	print("录入薪资:",salarys)
	print("平均薪资{0}".format(salarySum/4))

2.5 循环优化-高手必备

遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:
1、尽量减少循环内部不必要的计算
2、嵌套循环中,尽量减少内层循环的计算,尽可能向外提
3、局部变量查询较快,尽量使用局部变量

import time
start = time.time()
for i in range(1000):
	result = []
	for m in range(10000):
		result.append(i*1000+m*100)
end = time.time()
print("耗时:{0}".format((end-start)))

start2 = time.time()
for i in range(1000):
	result = []
	c = i*1000  计算往外层提
	for m in range(10000):
		result.append(c+m*100)
end2 = time.time()
print("耗时:{0}".format((end2-start2)))

其它优化手段:
字符串拼接时,使用join()而不使用+
列表进行元素插入和删除,尽量在列表尾部操作

2.3 使用zip()并行迭代

可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停
止。

names = ("高淇","高老二","高老三","高老四")
ages = (18,16,20,25)
jobs = ("老师","程序员","公务员")
for name,age,job in zip(names,ages,jobs):
	print("{0}--{1}--{2}".format(name,age,job))

执行结果:
高淇–18–老师
高老二–16–程序员
高老三–20–公务员
同样的效果:

for i in range(3):
    print('{}--{}--{}'.format(names[i],ages[i],jobs[i]))

3 推导式创建序列

3.1 列表推导式

[表达式 for item in 可迭代对象]或者
[表达式 for item in 可迭代对象 if 条件判断]
>>>[x for x in range(1,5)]
[1,2,3,4]
>>>[a for a in 'abcde']
['a','b','c','d','e']
>>>[(a,b) for a in range(4) for b in range(4)] #可用两个循环

3.2 字典推导式

{key_expressiom:value_expression for 表达式 in 可迭代对象} #也可增加if条件判断,多个for循环
统计文本中字符出现的次数:
>>> my_text = ' i love you, i love sxt, i love gaoqi' 
>>>> char_count = {c:my_text.count(c) for c in my_text

3.3 集合推导式

{表达式 for item in 可迭代对象}或者
{表达式 for item in 可迭代对象 if 条件判断}

3.4 生成器推到式(生成元组)

 (x for x in range(1,100) if x % 9 == 0)
 生成一个迭代器:
 <generator object <genexpr> at 0x00000241CF012C80>

一个迭代器只能运行一次,第一次迭代可得到数据,第二次迭代数据没了

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 12:48:17  更:2021-10-04 12:48:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:41:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码