Python入门课程系列:
- Python学习 day1:认识Python
简介
流程:就是计算机执行代码的顺序;
流程控制:对计算机代码执行的顺序进行有效的管理,只有流程控制才能实现在开发当中的业务逻辑
流程控制的分类
顺序流程:就是代码一种自上而下的执行结构,也是python默认的流程
-
选择流程/分支流程:根据在某一步的判断,有选择的去执行相应的逻辑的一种结构(if else)
单分支
if条件句:if 条件表达式:代码指令-
双分支
if-else语句:if 条件表达式:代码指令 else 条件表达式:代码指令
多分支
if elif语句
- 循环流程:在 一定的条件下,一直重复的去执行某段代码的逻辑(while循环和for循环)
(条件表达式可以是比较运算符/逻辑运算符/复合的运算符)
⚠️1. if-else语句
单分支:
#if 条件表达式:比较运算符/逻辑运算符/符合条件的表达式
# 代码指令
# ......
score=60
if score<=60: #满足条件会输出打印提示
print('成绩不是太理想,要继续加油哦')
pass #pass就是隔开代码用的,是怕复制代码时漏了缩进符,导致if条件语句判断错误
print('语句运行结束')
双分支:
#if 条件表达式:比较运算符/逻辑运算符/符合条件的表达式
# 代码指令
#else:
# 代码指令
score=int(input('请输入您的成绩'))
if score>60:
print("及格")
pass
else:
print('不及格,继续努力')
pass #空语句
多分支:
# if 条件表达式:比较运算符/逻辑运算符/符合条件的表达式
# 代码指令
# elif 条件表达式:
# 代码指令
# ......
# else:
#❗️特征:
# 1.只要满足其中一个分支,就会退出本层if语句结构。【必定会执行其中一个分支】
# 2.至少有2种情况可以选择
# elif后面必须写上条件和语句
# else是选配,根据实际情况来写
score=int(input('请输入您的成绩'))
if score>=80:
print("优秀")
pass
elif score<80 and score >60:
print('及格')
pass
else:
print('不及格')
pass
print('程序运行结束')
猜拳小游戏:
import random
person=int(input('请出拳:[0:石头 1:剪刀 2:布]'))
computer=random.randint(0,2)
if person==0 and computer ==1 or person==1 and computer ==2 or person==2 and computer ==0:
print('厉害了..你赢了')
pass
elif person == computer:
print('不错,居然是平手')
pass
else:
print('哈哈,你输了吧')
#if-else嵌套使用
学分=int(input("请输入您的学分"))
if 学分>10:
grade=int(input('请输入您的成绩'))
if grade>80:
print('恭喜,你可以升班了')
pass
else:
print('您的成绩不达标')
pass
pass
else:
print("您的表现不佳")
pass
⚠️2. while循环
while:适用于对未知的循环次数(用于判断)
for:适用于已知的循环次数(可迭代对象遍历)
while语法结构:while 条件表达式:代码指令
语法特点❗️
1. 有初始值
2. 条件表达式
3. 变量【循环体内计数变量】的自增自减,否则会造成死循环
使用条件:循环的次数不确定,是依靠循环来结束
目的:将相似或相同的代码操作变得更加简洁,使得代码可以重复利用。
#案例1 输出1-100之间的数据
index = 1
while index<=100:
print(index)
index+=1 #如果没有这个循环体内计数变量,就会陷入死循环,持续输出1
pass
#案例2
#猜拳小游戏 连续玩10次
import random
variate=1
while variate <= 10:
person=int(input('请出拳:[0:石头 1:剪刀 2:布]'))
computer=random.randint(0,2)
if person==0 and computer ==1 or person==1 and computer ==2 or person==2 and computer ==0:
print('厉害了..你赢了')
pass
elif person == computer:
print('不错,居然是平手')
pass
else:
print('哈哈,你输了吧')
pass
variate+=1
pass
#案例3 打印99乘法表
row=9
while row>=1:
col=1
while col<=row:
print('%d*%d=%d'%(row,col,row*col),end='') #end通俗理解就是阻止print自带的换行
col+=1
pass
print()
row -=1
pass
#案例4 打印直角三角形
row=1
while row<=7:
j=1
while j<=row:
print('*',end=' ')
j+=1
pass
print()
row+=1
pass
#画倒三角
row=7
while row>=1:
j=1
while j<=row:
print('*',end=' ')
j+=1
pass
print()
row-=1
pass
#案例5 打印等腰三角形
row=1
while row<=10:
j=1
while j<=10-row: #控制打印空格的数量
print(' ',end='') #print“#”更有助于理解。如果end=''的两个''中间有空格 ,打印的是靠右的直角三角形,
j+=1
pass
k=1
while k<=2*row-1: #控制打印*号
print('*',end='')
k+=1
pass
print()
row+=1
⚠️3. for循环
for跟while循环一样也可以完成循环(while能做的for也能做)
- for循环格式
for 临时变量 in 字符串,列表等
执行代码块
执行代码块 - for循环示例
a = 'python'
for i in a:
print(i)
- for循环
遍历
列表
li = ['a','b','c','d']
for i in li:
print(i)
# 语法特点:遍历操作,依次的取集合容器中的每个值
# for 临时变量 in 容器:
# 执行代码块
# 案例1
tages='我是一个中国人'
for item in tages:
print(item)
pass
# 案例2 求1到100的加和
# range 此函数可以生成一个数据集合列表 格式:range(起始,结束,步长),步长不能为0,range取的数据是左包含右不包含
sum=0
for data in range(1,101):#左包含右不包含
sum+=data #求累加和
#print(data,end=' ')
pass
print('sum=%d'%sum)
#❗️注意range的用法:
print(range(0,5))
#range(0, 5)
print(list(range(0,5)))
#[0, 1, 2, 3, 4]
#案例3 打印50-200见所有的奇数和偶数
for data in range(50, 201):
if data % 2 == 0:
print("%d是偶数" % data)
pass
else:
print("%d是奇数" % data)
#案例4 for循环打印九九乘法表
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
4. break、continue语句
break:退出(for/while)循环;break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。
continue:跳过本次循环 ,继续下一次循环(当continue条件满足时 ,本次循环的语句将不再执行,后面的循环继续)
这两个关键字只能用在循环中
#break案例1 猜拳小游戏,赢三次退出游戏
import random
win = 0
while True: #while是需要接判断表达式,true的话就会一直循环(无限循环),所以要有break退出。
if win >= 3:
print('你已经胜利3次')
break
else:
person = int(input('请出拳:[0:石头 1:剪刀 2:布]'))
computer = random.randint(0, 2)
if person == 0 and computer == 1 or person == 1 and computer == 2 or person == 2 and computer == 0:
print('厉害了..你赢了')
win +=1
pass
elif person == computer:
print('不错,居然是平手')
pass
else:
print('哈哈,你输了吧')
pass
# break案例2 1到50的加和大于100就退出
sum=0
for item in range(1,51):
if sum > 100:
print('循环执行到%d就 退出来了'%item)
break
pass
sum += item
pass
print("sum = %d"%sum)
#案例3 字符串遍历
for item in 'I love python':
if item == 'e':
break
print(item)
for item in 'I love python':
if item == 'o':
continue
print(item)
5. 多条件与短路运算
for....else...
案例1
for item in range(1,11):
print(item,end="")
if item >= 5:
break
pass
else:
print('已经执行完了') #只要上面的循环中出现了break, else的代码都不会执行
案例2
account = 'hh'
pwd = '123'
for i in range(3):
zh = input('请输入账号:')
pd = input('请输入密码:')
if account==zh and pwd==pd
print('恭喜您登录成功')
break
pass
else:
print('您的账号已被系统锁定')
while...else...
index=1
while index<=10:
print(index)
if index==6:
break
index+=1
pass
else:
print('else执行了')
课后练习:
重复练习:
- 绘制等腰三角形
- 编写剪刀石头布小游戏,人获胜次数超过三次就打印“您已获胜三次”,并退出程序。否则游戏进行10次,打印“您已累计玩了10次”并退出程序。
- 分别使用while循环和for循环打印九九乘法表
#第二题
times=0
win=0
while True:
if win >= 3 and times < 10:
print('Win 3 times')
break
elif times == 10:
print('Have a break')
break
else:
person = int(input('请输入:(石头=0,剪刀=1,布=2)'))
import random
computer = random.randint(0, 2)
if person == 0 and computer == 1 or person == 1 and computer == 2 or person == 2 and computer == 0:
print('你赢啦')
win += 1
pass
elif person == computer:
print('平局')
pass
else:
print('你输啦')
pass
times += 1
pass
pass
##第三题
col=9
while col >=1:
row=1
while row<=col:
print('%d*%d=%d'%(row,col,row*col),end=' ')
row+=1
pass
print()
col-=1
pass