【Python基础知识-pycharm版】第六节-控制语句

第六节 控制语句

  • 选择结构
    • 多分支选择结构
    • 选择结构的嵌套
  • 循环结构
    • while循环
    • for循环和可迭代对象遍历
    • range 对象
    • 嵌套循环
    • break
    • continue
    • else语句
    • 循环代码优化
    • 使用zip
  • 推导式创建序列
    • 列表推导式
    • 字典推导式
    • 集合推导式
    • 生成器推导式
  • 综合练习
    • 绘制不同颜色的多个同心圆

选择结构

选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分支、双分支和多分支。流程图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

s=input("请输入一个数字")
if int(s)<10:print("s是小于10的数字")
else:print("s是大于等于10的数字")
#测试三元条件运算符
print("s是小于10的数字"if int(s)<10 else "s是大于等于10的数字")
请输入一个数字55
s是大于等于10的数字
s是大于等于10的数字Process finished with exit code 0

多分支选择结构

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

score =int(input("请输入分数"))
grade =''
if(score<60):grade='不及格'
if(60<=score<=80):grade = '及格'
if(80<=score<=90):grade = '良好'
if(90<=score<=100):grade = '优秀'
print('分数是{0},等级是{1}'.format(score,grade))
请输入分数79
分数是79,等级是及格Process finished with exit code 0

在这里插入图片描述

score =int(input("请输入分数"))
grade =''
if(score<60):grade='不及格'
elif score<80:grade="及格"
elif score<90:grade="良好"
elif score<100:grade = "优秀"
print('分数是{0},等级是{1}'.format(score,grade))
请输入分数89
分数是89,等级是良好Process finished with exit code 0

在这里插入图片描述

选择结构的嵌套

在这里插入图片描述
在这里插入图片描述

score =int(input("请输入分数"))
if score>100 or score<0:print("请输入一个0-100的分数")
else:if score>=90:print('A')elif score >=80:print('B')elif score >= 70:print('C')elif score >= 60:print('D')else:print('E')print('分数是{0},等级是{1}'.format(score,grade))
score =int(input("请输入分数"))
degree="ABCDE"
num=0
if score>100 or score<0:print("请输入一个0-100的分数")
else:num=score//10if num<6:num=5print('分数是{0},等级是{1}'.format(score,degree[9-num]))
请输入分数89
分数是89,等级是BProcess finished with exit code 0

循环结构

在这里插入图片描述

while循环

在这里插入图片描述

num=0
while num<=10:print(num)num+=1
#计算1-100之间数字的累加和
num2=0
sum_all=0
while num2<=100:sum_all=sum_all+num2num2+=1
print("1-100所有数的累加和:",sum_all)

快捷键目录标题文本样式列表链接代码片表格注脚注释自定义列表LaTeX 数学公式插入甘特图插入UML图插入Mermaid流程图插入Flowchart流程图
目录复制

for循环和可迭代对象遍历

在这里插入图片描述
在这里插入图片描述

d={'name':'gaoqi','age':18,'address':'西三旗'}
for x in d:print(x)
for x in d.keys():print(x)
for x in d.values():print(x)
for x in d.items():print(x)
name
age
address
name
age
address
gaoqi
18
西三旗
('name', 'gaoqi')
('age', 18)
('address', '西三旗')Process finished with exit code 0

range 对象

在这里插入图片描述
在这里插入图片描述

sum_all=0
sum_even=0
sum_odd=0
for num in range(101):sum_all+=numif num%2==0:sum_even+=numelse:sum_odd+=numnum+=1
print("1-100所有数的累加和",sum_all)
print("1-100所有偶数的累加和",sum_even)
print("1-100所有奇数的累加和",sum_odd)
1-100所有数的累加和 5050
1-100所有偶数的累加和 2550
1-100所有奇数的累加和 2500Process finished with exit code 0

嵌套循环

在这里插入图片描述
在这里插入图片描述

for x in range(5):for y in range(5):print(x,end="\t")print()#天然有换行for m in range(1,10):s=""for n in range(1,m+1):s+=str.format("{0}*{1}\t",m,n,m*n)print(s)
0	0	0	0	0	
1	1	1	1	1	
2	2	2	2	2	
3	3	3	3	3	
4	4	4	4	4	
1*1	
2*1	2*2	
3*1	3*2	3*3	
4*1	4*2	4*3	4*4	
5*1	5*2	5*3	5*4	5*5	
6*1	6*2	6*3	6*4	6*5	6*6	
7*1	7*2	7*3	7*4	7*5	7*6	7*7	
8*1	8*2	8*3	8*4	8*5	8*6	8*7	8*8	
9*1	9*2	9*3	9*4	9*5	9*6	9*7	9*8	9*9	
r1=dict(name='高小一',age=18,salary=30000,city='北京')
r2=dict(name='高小二',age=19,salary=20000,city='上海')
r3=dict(name='高小五',age=20,salary=10000,city='深圳')
tb=[r1,r2,r3]
for x in tb:if x.get('salary')>15000:print(x)

结果输出:

{'name': '高小一', 'age': 18, 'salary': 30000, 'city': '北京'}
{'name': '高小二', 'age': 19, 'salary': 20000, 'city': '上海'}

break

在这里插入图片描述

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

continue

在这里插入图片描述

empNum=0
salarySum=0
salarys=[]
while True:s=input('请输入员工工资数(按q或Q结束)')if s.upper()=='Q':   #小写字母转大写print('录入完成,退出')breakif float(s)<0:continueempNum+=1salarys.append(float(s))#append加入工资项salarySum+=float(s)
print('员工数{0}'.format(empNum))
print('录入工资:',salarys)
print('平均薪资{0}'.format(salarySum/empNum))#foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……

结果:

请输入员工工资数(按q或Q结束)7000
请输入员工工资数(按q或Q结束)90000
请输入员工工资数(按q或Q结束)q
录入完成,退出
员工数2
录入工资: [7000.0, 90000.0]
平均薪资48500.0Process finished with exit code 0

else语句

在这里插入图片描述
在这里插入图片描述

循环代码优化

在这里插入图片描述
在这里插入图片描述
其他优化手段:
1.连续多个字符串,使用join()而不使用+
2.列表进行元素插入和删除,尽量在列表尾部操作

使用zip

在这里插入图片描述

for i in [1,2,3]:print(i)
names=('高琪','高老二','高老三','高老四')
ages=(18,16,20,25)
jobs=('老师','程序员','公务员')for name,age,job, in zip(names,ages,jobs):print('{0}--{1}--{2}'.format(name,age,job))
for i in range(3):print('{0}--{1}--{2}'.format(names[i],ages[i],jobs[i]))
1
2
3
高琪--18--老师
高老二--16--程序员
高老三--20--公务员
高琪--18--老师
高老二--16--程序员
高老三--20--公务员Process finished with exit code 0

推导式创建序列

在这里插入图片描述

列表推导式

在这里插入图片描述

字典推导式

在这里插入图片描述

集合推导式

在这里插入图片描述

生成器推导式

在这里插入图片描述
生成元组tuple gnt是可迭代对象可以循环

综合练习

绘制不同颜色的多个同心圆

import turtle
t = turtle.Pen()
my_colors=('red','green','yellow','black')
t.width(4)
t.speed(0)
for i in range(50):t.penup()t.goto(0,-i*10)t.pendown()t.color(my_colors[i%len(my_colors)])t.circle(15+i*10)
turtle.done() #程序执行完,窗口仍然在

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天池 在线编程 回文子串(区间动态规划)

文章目录1. 题目2. 解题1. 题目 描述 小明喜欢玩文字游戏&#xff0c;今天他希望在一个字符串的子串中找到回文串。 回文串是从左往右和从右往左读相同的字符串&#xff0c;例如121和tacocat。子串是一个字符串中任意几个连续的字符构成的字符串。 现在给你一个字符串s, 求…

【Python基础知识-pycharm版】第七节-函数

函数函数函数定义与调用形参和实参变量的作用域&#xff08;全局变量和局部变量&#xff09;局部变量和全局变量的测试参数的传递参数的几种类型位置参数默认值参数命名参数可变参数强制命名参数lambda表达式和匿名函数eval()函数用法递归函数_函数调用内存分析_栈帧的创建嵌套…

天池 在线编程 停车困境(双指针)

文章目录1. 题目2. 解题1. 题目 描述 停车场里停着许多汽车。 停车位是一条很长的直线&#xff0c;每米都有一个停车位。 当前很多汽车停放&#xff0c;您想通过建造屋顶来遮雨挡雨。 要求至少有k辆车的车顶被车顶遮盖&#xff0c;要覆盖k辆车的车顶的最小长度是多少&#xff…

《maven实战》笔记(2)----一个简单maven项目的搭建,测试和打包

参照《maven实战》在本地创建对应的基本项目helloworld&#xff0c;在本地完成后项目结构如下&#xff1a; 可以看到maven项目的骨架&#xff1a;src/main/java&#xff08;javaz主代码&#xff09;src/test/java&#xff08;测试代码&#xff09;src/main/resuources&#xff…

【Python基础知识-pycharm版】第八节-面向对象编程/类

面向对象编程面向对象和面向过程的区别_执行者思维_设计者思维类的定义构造函数__init__实例属性_内存分析实例方法_内存分析类对象类属性_内存分析创建类和对象的底层类方法_静态方法_内存分析图示__del__()析构方法和垃圾回收机制__call__()方法和可调用对象面向对象和面向过…

天池 在线编程 推荐朋友(哈希)

文章目录1. 题目2. 解题1. 题目 描述 给n个人的朋友名单&#xff0c;告诉你user是谁&#xff0c;请找出user最可能认识的人。&#xff08;他和user有最多的共同好友且他不是user的朋友&#xff09; n < 500。 好友关系是相互的。&#xff08;b若出现在a的好友名单中&#…

mr图像翻转的原因_MR的特殊检查脂肪抑制

让学习成为一种好习惯正文开始脂肪抑制脂肪抑制是指在MR成像中通过调整采集参数而选择性的抑制脂肪信号&#xff0c;使其失去高信号变为低信号&#xff0c;以区分同样为高信号的不同结构&#xff0c;在临床诊断上具有重要的意义&#xff0c;主要表现在&#xff1a;(1)减少运动伪…

Qt 图形特效(Graphics Effect)介绍

原文链接:Qt 图形特效(Graphics Effect)介绍 QGraphicsEffect也是Qt-4.6引入的一个新功能。它让给图形元素QGraphicsItem增加更佳视觉效果的编程变得非常简单。 先来看几张效果图。 上图中最上面的那个图片是没有使用QGraphicsEffect处理的原图&#xff0c;下面的四个图片分别代…

小米usb3.0修复补丁_今日热闻 | Redmi 10X系列发布、小米手环5产品外观曝光、Win10补丁导致蓝屏、AXON 11 SE 6月发布...

今日热点新闻realme X50 Pro 玩家版发布realme 通过线上发布会推出包括真我 X50 Pro 玩家版在内的 8 款新品。其中真我 X50 Pro 玩家版搭载高通骁龙 865 移动平台、6.44 寸 90Hz 刷新率 AMOLED 屏幕和 1216 超线性双扬声器&#xff0c;配备 VC 液冷散热、线性马达和 4200mAh 电…

【Python基础知识-pycharm版】第九节_面向对象的三大特征

第九节方法方法没有重载私有属性和私有方法&#xff08;实现封装&#xff09;property装饰器_get和set方法面向对象的三大特征说明(封装、继承、多态)继承方法的重写&#xff08;类成员的继承和重写&#xff09;查看类的继承结构object根类_dir() 查看对象属性重写__str__()方法…

LeetCode 1869. 哪种连续子字符串更长

文章目录1. 题目2. 解题1. 题目 给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 例如&#xff0c;s "110100010" 中&#xff0c;…

如何通过像素点找到世界坐标_如何通过阅读来找到自己理论研究的“视域”?...

理论研究多用演绎法&#xff0c;也就是说&#xff0c;理论研究一般始于一个独特的概念、理论视角&#xff0c;或者判断。用刘良华的观点来说&#xff0c;这些都是理论研究的“视域”&#xff0c;也是理论研究得以展开的“大前提”。因此&#xff0c;理论研究最为关键的问题&…

任务并行VS数据并行

并行计算中&#xff0c;有两种并行的方法&#xff1a;任务并行&#xff08;task-parallelism&#xff09;和数据并行&#xff08;data-parallelism&#xff09;。任务并行&#xff1a;将许多可以解决问题的任务分割&#xff0c;然后分布在一个或者多个核上进行程序的执行。数据…

【Python基础知识-pycharm版】第十节_异常

第十节异常异常机制本质异常解决的关键&#xff1a;定位try... 一个 except 结构try... 多个 except 结构try...except...else 结 构try...except...finally 结构return 语句和异常处理问题常见异常的解决常见异常汇总with 上下文管理trackback 模块自定义异常类异常 在实际工…

k8s挂载目录_拥抱云原生,如何将开源项目用k8s部署?

k8s以及云原生相关概念近年来一直比较火热&#xff0c;阿丸最近搞了个相关项目&#xff0c;小结一下。本文将重点分享阿里开源项目otter适配k8s部署的改造过程&#xff0c;其中的改造过程和技巧应该适用于将大多数开源项目改造到k8s进行部署。1.背景otter是阿里开源的分布式数据…

LeetCode 1870. 准时到达的列车最小时速(二分查找)

文章目录1. 题目2. 解题2.1 模拟超时2.2 二分查找1. 题目 给你一个浮点数 hour &#xff0c;表示你到达办公室可用的总通勤时间。 要到达办公室&#xff0c;你必须按给定次序乘坐 n 趟列车。 另给你一个长度为 n 的整数数组 dist &#xff0c;其中 dist[i] 表示第 i 趟列车的行…

【Python基础知识-pycharm版】第十一节-文件操作(IO技术)

第十一节-文件操作&#xff08;IO技术&#xff09;文本文件和二进制文件文件操作相关模块概述创建文件对象 open()文本文件的写入基本的文件写入操作常用编码介绍ASCIIISO8859-1GB2312,GBK,GB18030中文乱码问题write()/writelines()写入数据close()关闭文件流with 语句(上下文管…

LeetCode 1871. 跳跃游戏 VII(贪心)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump 。 一开始&#xff0c;你在下标 0 处&#xff0c;且该位置的值一定为 0 。 当同时满足如下条件时&#xff0c;你可以从下标 i 移动到下标 j 处&#xff1a; i minJump …

pcb外观维修_「维修案例」泰克AFG3021函数任意波形发生器故障维修

在产品调试的过程中&#xff0c;大多数的电路需要输入某种幅度随时间变化的信号&#xff0c;在这样的应用场景中&#xff0c;一个完整的测试测量系统一般会包含激励源&#xff0c;被测件和采集仪器三个部分。采集仪器通常使用的是示波器和逻辑分析仪&#xff0c;而信号源在系统…

设计模式--迭代器模式

实验18&#xff1a;迭代器模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解迭代器模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用迭代器模式解决实际问题。 [实验任务]&#xff1a;JAVA和C常见数据结构迭代…