Python学习(二)
每日一悟:一个人的心如果澄净了,就日日是好日,夜夜是清宵。
一、流程与流程控制
- 流程:就是计算机执行代码的顺序。
- 流程控制:对计算机代码执行的顺序进行有效的管理,只有流程控制才能实现在开发中的业务逻辑。
- 流程控制的分类:
(1)顺序流程:代码自上而下的执行结构,也是Python默认的流程。
(2)选择(分支)流程:根据在某一步的判断,有选择的去执行相应的逻辑的一种结构。
a.单分支:
if条件表达式:
一条条的编程语句
一条条的编程语句
一条条的编程语句
b.双分支:
if条件表达式:
一条条的编程语句
一条条的编程语句
else:
一条条的编程语句
一条条的编程语句
c.多分支:
if条件表达式:
一条条的编程语句
一条条的编程语句
elif条件表达式:
一条条的编程语句
一条条的编程语句
elif条件表达式:
一条条的编程语句
一条条的编程语句
………
else:
一条条的编程语句
一条条的编程语句
一条条的编程语句
条件表达式:比较运算符/逻辑运算符/复合的运算符
3)循环流程:在一定的条件下,一直重复的去执行某段代码的逻辑(事情)。
While 条件表达式:
一条条的编程语句
一条条的编程语句
……
for …in 可迭代集合对象
一条条的编程语句
一条条的编程语句
二、选择流程
- Python的条件语句是通过一条或者多条语句的执行结果(True或Fales)来决定执行的代码块。
(1)单分支
if 条件表达式:
代码指令
score=60
if score<=60:
print("成绩不是很理想,要加油!")
pass #空语句
print("运行结束")
(2)双分支
if 条件表达式:
代码指令
else:
代码指令
if score>60:
print("成绩合格!")
pass #空语句
else:
print("您的成绩不合格,请继续努力")
pass
(3)多分支
if 条件表达式:
代码指令
elif 条件表达式:
代码指令
…
else:
特征:1.只需满足一个分支,就会突出本层if语句结构【必定会执行一个分支】
2.至少有俩种情况可以选择
elif后面必须写上条件和语句
else是选配,根据实际情况来写
score=int(input("请输入你的成绩:"))
if score>90:
print("优秀")
pass
elif score>=80:
print("良好")
pass
elif score>=70:
print("及格")
pass
else:
print("不及格")
pass
设计一个小游戏
猜拳小游戏
0:石头 1:剪刀 2:布
import random #直接导入产生随机数的模块
计算机 人
person=int(input("请出拳:[0:石头 1:剪刀 2:布]"))
computer=random.randint(0,2)#产生0-2三个数据
if person==0 and computer==1:
print("厉害了,你赢了")
pass
elif person==1 and computer==2:
print("厉害了,你赢了")
pass
elif person==2 and computer==0:
print("厉害了,你赢了")
pass
elif person==computer:
print("不错,居然是平手")
pass
else:
print("哈哈哈,你输了")
pass
(4)if-else的嵌套使用:一个场景需要分阶段或者层次,做出不同的处理
要执行内部的if语句 一定要外部的if语句满足条件才可以
xuefen=int(input("请输入你的学分:"))
grade=int(input("请输入你的成绩:"))
if xuefen>10:
if grade>=80:
print('您可以升班了,恭喜您')
pass
else:
print('很遗憾,您的成绩不达标')
pass
else:
print('您的表现也太差了吧。。。')
三、循环流程
- While 条件表达式:一条条的编程语句
一条条的编程语句
……
语法特点:有初始值;条件表达式;变量【循环体内的计数变量】的自增自减,否则会造成死循环。
使用条件:循环的次数不确定,是依靠循环条件来结束。
目的:将相似或者相同的代码操作变得更加简洁,使我们的代码可以重复利用。
举例
输出1-100之间的数据
index=1
while index<=100:
print(index)
index+=1
pass
打印九九乘法表
row=1
while row<=5:
j=1#空格数
while j<=5-row: #控制打印空格的数量
print(' ',end='')#end表示不换行
j+=1
pass
k=1
while k<=2*row-1: #控制打印*号
print('*',end='')
k+=1
pass
print()
row+=1
pass
打印直角三角形
row=1
while row<=5:
j=1#空格数
while j<=5-row: #控制打印空格的数量
print(' ',end='')#end表示不换行
j+=1
pass
k=1
while k<=2*row-1: #控制打印*号
print('*',end='')
k+=1
pass
print()
row+=1
pass
练习等腰三角形
row=1
while row<=5:
j=1#空格数
while j<=5-row: #控制打印空格的数量
print(' ',end='')#end表示不换行
j+=1
pass
k=1
while k<=2*row-1: #控制打印*号
print('*',end='')
k+=1
pass
print()
row+=1
pass
- for (临时变量)…in(字符串,列表等) 可迭代集合对象一条条的编程语句
一条条的编程语句
语法特点:遍历操作依次的取集合容器中的每个值。
举例
tags='我是一个中国人'#字符串类型本身就是一个字符类型的集合
for item in tags:
print(item)
pass
---range函数---此函数可以生成一个数据集合列表
#range(起始数据:结束:步长) 步长不能为0
输出1-100
for data in range(1,101):#左包含右不包含
print(data,end=' ')
输出1-100和
sum=0
for data in range(1,101):
sum+=data
pass
print("sum=%d"%sum)
输出奇数与偶数
for data in range(1,101):
if data%2==0:
print("%d是偶数"%data)
pass
else:
print("%d是奇数"%data)
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%d"%(i,j,i*j),end=' ')
pass
print() #控制换行
pass
- break和continue 这两个关键字只能用在循环中
(1)break 退出循环 只要满足条件直接结束
举例:sum大于100就退出
sum=0
for item in range(1,51):
if sum>100:
print('循环执行了%d次就退出了'%item)
break
pass
sum+=item
pass
print('sum=%d'%sum)
(2)continue 跳过本次循环,继续下一次循环
在这里插入代码片举例:输出1-100的奇数
for item in range(1,100):
if item%2==0:
continue
pass
print('奇数是%d'%item)
pass```
```python
举例:遍历字符串
for item in 'i love you':
if item=='e':
break
print(item)
举例:输出1-20
index=1
while index<=100:
if index>20:
break
pass
print(index)
index+=1
- while与for
while使用:对未知的循环次数 用于判断
for使用:适用于已知循环次数【可迭代对象遍历】 - for—else与while—else,只要出现break,else不会再执行
举例:用户登录提示
account='www'
pwd='123'
for i in range(3):
zh=input('请输入账号:')
pd=input('请输入密码:')
if account==zh and pwd==pd:
print('恭喜您,登录成功!')
break
else:
print('您的输入有误,请重新输入')
pass
pass
else:
print('您的账号已被系统锁定……')