Python笔记【03】知识点满满版

【03第三章】 程序的流程控制

3.1 程序的描述方式

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

【代码01】3.1 程序的描述方式
#coding: utf-8
r=eval(input("请输入圆的半径:"))
S=3.14*r*r #面积
L=2*3.14*r   #周长
print("圆的面积: ", round(S,2),"周长是: " , round(L,2))

3.2 程序的组织结构_顺序结构

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

【代码01】3.3简单的if语句
#赋值运算符的执行顺序,.从右到左
name='张三' #将“张三"赋值给变量name'
age=20  #将20赋值给变量age
a=b=c=d=100   #将a , b ,c , d的值同时赋值为100 ,链式赋值

#系列解包赋值
name1,age1='李四',22  #元组分解赋值
print(name ,age)
print(name1,age1)
[name2, age2]=['王五',30]  #列表分解赋值
print(name2,age2)

a,b,c,d='room'  #字符串分解赋值
print(a)
print(b)
print(c)
print(d)

#扩展的字符串解包赋值
a, *b= 'room'
print(a)
print(b)

print( ' ----------输入输出语句,也是典型的顺序结构---------')
name=input('请输入您的姓名:')
age=eval(input('请输入您的年龄:'))
lucky_number=eval(input('请输入您的幸运数字:'))
print( '姓名: ' ,name)
print('年龄: ' ,age)
print('幸运数字: ',lucky_number)
3.3 简单的if语句

在这里插入图片描述

【代码01】3.3 简单的if语句

if只会执行Ture的语句。

# coding: utf-8
number=eval(input('请输入您的6位中奖号码:'))  #使用if语包
if number==987654:
    print('恭喜您,中奖了')
if number!=987654:
    print( '您未中本期大奖')
print( '-----------以上if判断的表达式,使用比较运算符,比较表达式,--------------')
n=98        #赋值
if n%2:     #98%2..的余数为0,0的布尔值为False ....非0的布尔值为True
    print(n,'为奇数')
if not n%2:   #98%2的余数方00的布尔值为False,not False结果为True
    print(n, '为偶数')


print( ' -------判断一个字符串是否是空字符串------')
x=input('请输入一个字符串: ')  #空字符串的布尔值为False,非空字符串的布尔值为True
if x:
    print( 'x是一个非空字符串')
if not x:
    print( 'x是一个空字符串')
print( ' --------表达式也可以是一个单纯的变量--------')

flag=eval(input('请输入一个布尔类型的值:True 或False ' ))
if flag:     #flag是一个布尔值类型的变量...值为Irue或False
    print( 'flag的值为True ')
if not flag:
    print( 'flag的值为False')

print( ' ------使用if语句时,如果语句块只有一句代码,可以将语句块直接写在冒号的后面-------')
a=10
b=5
if a>b:max=a
print( 'a和b的最大值为: ' ,max)
3.4 if语句的常见问题

在这里插入图片描述

3.5 if-else语句

在这里插入图片描述

【代码01】3.5if-else语句

注意这里的if else的变形。多种方式可以得到相同的结果。

# coding : utf-8
number=eval(input('请输入您的6位中奖号码:'))
#if...else
if number==987654:
    print('恭喜您中奖了')
else:
    print('您未中本期大奖')


print( '----以上代码还可以使用条件表达式简化---')
#numben==987654为True是,将“恭喜发您中奖了"赋值给变量result,否则将'您未中本期大奖'赋值给变量nesult
result='恭喜发您中奖了' if number==987654 else '您未中本期大奖'
print(result)

number=eval(input('请输入您的6位中奖号码:'))
print('恭喜发您中奖了' if number==987654 else '您未中本期大奖')
3.6 多重if语句

在这里插入图片描述

【代码01】3.6 多重if语句
# coding : utf-8
score=eval(input('请输入您的成绩: '))#判断
if score<0 or score>=100:
    print('成绩有误')
elif 0<=score<60:
    print('E')
elif 60<=score<70:
    print( 'D ')
elif 70<=score<80:
    print('C')
elif 80 <= score < 90:
    print('B')
else:
    print('A')
3.7 嵌套if

在这里插入图片描述

【代码01】3.7嵌套if
#t coding: utf-8
answer = input('请问,您喝酒了吗? y/n ')
if answer == 'y': #.代表喝酒了
    proof = eval(input('请输入洒精含量:'))
    if proof<20:
        print('构不成酒驾,祝您一路平安')
    elif proof<80:
        print('己构成酒驾标准,请不要开车')
    else:
        print('已达到醉驾标准,请千万不要开车')
else:#代表没有喝酒的情况
    print('你走吧,没你啥事儿')
3.8 使用逻辑运算符and_or连接多个选…

在这里插入图片描述

【代码01】3.8使用逻辑运算符and_or连接多个选…
# coding: utf-8
user_name=input('请输入您的用户名:')
pwd=input('请输入您的密码: ')
if user_name=='ysj' and pwd=='888888':
    print('登录成功')
else:
    print('用户名或密码不正确')

# coding : utf-8
score=eval(input('请输入您的成绩:'))
if score<0 or score>100:
    print('成绩无效')
else:
    print( '您的成绩为: ' ,score)

3.9 遍历循环for

在这里插入图片描述

【代码01】3.9遍历循环for
#coding: utf-8#遍历字符串
for i in 'hello' :
    print(i)
#range()函数,产生一个[n , m)的整数序列,包含n,不包含m
for i in range(1,11):
    #print(i)
    if i%2==0:
        print(i,'是偶数')
#计算1-10之间的累加和
s=0#用于存储累加和
for i in range(1,11):
    s += i  # 相当于s=s+i
print('1-10之间的累加和为: ', s)

print( ' ------100-999之间的水仙花数------')
"""153
3*3*3+5*5*5+1*1*1=153
"""
for i in range(100,1000):
    sd=i%10#获取个位上的数引
    tens=i//10%10 #士位上的数字
    hundred=i//100#百位上的数字
    if sd**3+tens**3+hundred**3==i:
        print(i)

3.10 遍历循环的扩展形式

在这里插入图片描述

【代码01】3.10遍历循环的扩展形式
#计算1-10之间的累加和
s=0#用于存储累加和
for i in range(1,11):
    s += i  # 相当于s=s+i
else:
    print('1-10之间的累加和为: ', s)
3.11 无限循环while

在这里插入图片描述

【代码01】3.11无限循环while
#coding : utf-8#1.初始化变量
answer=input('今天要上课吗?y/n')
while answer=='y':# 2.条件判断
    print('好好学习,天天向上')#3.语句块
    #4.改变变最
    answer = input('今天要上课吗?y/n')

#1-100之间的累加和
s=0#存储累加和
i=1#(1)初始化变量
while i<=100:#(2)条件判断
    s+=i#相当于s=s+i#(3)语句块
    #(4)改变变量
    i+=1
print( '1-100之间的累加和:',s)

在这里插入图片描述

【代码02】3.11无限循环while
#1-100之间的累加和
s=0#存储累加和
i=1#(1)初始化变量
while i<=100:#(2)条件判断
    s+=i#相当于s=s+i#(3)语句块
    #(4)改变变量
    i+=1
else:
	print( '1-100之间的累加和:',s)
3.12 使用无限循环模拟实现登录
【代码01】3.12使用无限循环模拟实现登录
i=0#统计循环执行的次数
while i<3:# 0,1,2 ,fi=3时3<3False,循环执行结束
    user_name=input('请输入您的用户名: ')
    pwd=input( '请输入您的密码: ')
    #判断
    if user_name=='ysj' and pwd=='888888':
        print('系统正在登录,请稍后')  # 改变循环条件,退出循环
        i = 8  # 判晰8<3 False,循环执行结束
    else:
        if i < 2:
            print('用户名或密码不正确,您还有',2 - i, '次机会')
        i += 1  # 改变循环变量
if i==3: #当用户或密码输入不正确的时候,循环执行结束时,i的最大值为3
    print( '对不起,三次均输入错')

3.13 嵌套循环-长方形-直角三角形

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

【代码01】3.13嵌套循环-长方形-直角三角形
#coding : utf-8]
# 三行四列
for i in range(1,4):
    for j in range(1,5):
        print('*' , end='')
        #换行
    print()
    
print( ' ---------------------')
for i in range(1,6):
    for j in range(1,i+1):#*的个数与行数相同range(1,2),range(1,3),range(1,4)
        print( '* ' , end='')
    print()#换行

查看遍历次数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.14 嵌套循环-倒直角三角形-等腰三角形
【代码01】3.14嵌套循环-倒直角三角形-等腰三角形
#coding: utf-8
#倒直三角形
#1-->5(次)(1,6)2-->4次(1,5)3-->3次(1,4)4-->2次(1,3)5-->1次—(1,2)
for i in range(1,6):
    for j in range(1,7-i):
        print('*', end='')
    print()  # 换行



# 等腰三角形
'''
&&&*
&&***
&*****
'''

print( ' --------------------')
for i in range(1,6):
    #倒三角形
    for j in range(1,6 - i):
        print('&', end='')  #将&改成空格就行了
    # 1,3,5,7的三角形range(1,2) ,range(1,4) range(1,6) ,range(1,8) range(1,10)
    for k in range(1,i*2):#(1,1)(2,3)(3,5),(4,7)(5,9)
        print( '*' , end='')
    print()

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

3.15 嵌套循环-菱形与空心菱形mp4

在这里插入图片描述
4行+3行

【代码01】3.15嵌套循环-菱形与空心菱形mp4
# coding: utf-8
row=eval(input('请输入菱形的行数:'))
top_row=(row+1)//2#上增部分的行数#上半部分
for i in range(1,top_row+1):
    #倒三角形
    for j in range(1, top_row+1-i):
        print(' ', end='' )
    # 1,3,5,7的三角形range(1,2) , range(1,4)range(1,6) , range(1,8),range(1,10)
    for k in range(1,i*2):#(1,1).(2,3)..(3,5),(4,7) ..(5,9)
        print('*', end='')
    print()
#下半部分
bottom_row=row //2
for i in range(1,bottom_row+1):
# 直角三角形
    for j in range(1, i + 1):
                    # 2*bottom_row,  2*( bottom_row-1),2*( bottom_row-2), 2*( bottom_row-3)
                                          # 2*4,  2 * 3,  2 * 2,  2 * 1
        print(' ', end='')  # 倒三角形  range(1,8), range(1,6) range(1,4) range(1,2)
    for k in range(1,2*bottom_row-2*i+2):  #(1,7)(2,5)(3,3) (4,1)
        print('*',end='')
    print()

【代码02】3.15嵌套循环-菱形与空心菱形mp4
#### 一定要注意空格!!!!!!!!

# coding: utf-8
row=eval(input('请输入菱形的行数:'))
top_row=(row+1)//2#上增部分的行数#上半部分
for i in range(1,top_row+1):
    #倒三角形
    for j in range(1, top_row+1-i):
        print(' ', end='' )
    # 1,3,5,7的三角形range(1,2) , range(1,4)range(1,6) , range(1,8),range(1,10)
    for k in range(1,i*2):#(1,1).(2,3)..(3,5),(4,7) ..(5,9)
        if k == 1 or k == i * 2 - 1:
            print('*', end='')
        else:
            print(' ', end='')
    print()
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1):
# 直角三角形
    for j in range(1, i + 1):
                    # 2*bottom_row,  2*( bottom_row-1),2*( bottom_row-2), 2*( bottom_row-3)
                                          # 2*4,  2 * 3,  2 * 2,  2 * 1
        print(' ', end='')  # 倒三角形  range(1,8), range(1,6) range(1,4) range(1,2)
    for k in range(1,2*bottom_row-2*i+2):  #(1,7)(2,5)(3,3) (4,1)
        if k == 1 or k == 2*bottom_row-2*i+1:
            print('*', end='')
        else:
            print(' ', end='')
    print()
【代码03】加入控制输入为奇数【while】
# coding: utf-8
row=eval(input('请输入菱形的行数:'))

while row%2==0:
    print('重新输入菱形的行数:')
    row = eval(input('请输入菱形的行数:'))

top_row=(row+1)//2#上增部分的行数#上半部分
for i in range(1,top_row+1):
    #倒三角形
    for j in range(1, top_row+1-i):
        print(' ', end='' )
    # 1,3,5,7的三角形range(1,2) , range(1,4)range(1,6) , range(1,8),range(1,10)
    for k in range(1,i*2):#(1,1).(2,3)..(3,5),(4,7) ..(5,9)
        if k == 1 or k == i * 2 - 1:
            print('*', end='')
        else:
            print(' ', end='')
    print()
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1):
# 直角三角形
    for j in range(1, i + 1):
                    # 2*bottom_row,  2*( bottom_row-1),2*( bottom_row-2), 2*( bottom_row-3)
                                          # 2*4,  2 * 3,  2 * 2,  2 * 1
        print(' ', end='')  # 倒三角形  range(1,8), range(1,6) range(1,4) range(1,2)
    for k in range(1,2*bottom_row-2*i+2):  #(1,7)(2,5)(3,3) (4,1)
        if k == 1 or k == 2*bottom_row-2*i+1:
            print('*', end='')
        else:
            print(' ', end='')
    print()
3.16 跳转语句break

在这里插入图片描述

【代码01】3.16跳转语句break
# coding : utf-8)#1+2+3+6+5+6
s=0#存储累加和
i=1
while i<11:
    s+=i #计算累加
    if s>20:
        print('累加和大于20的当前数',i)
        break
    i+=1


print( ' -------------')
i=0
while i<3:
    user_name=input('请输入用户名:')
    pwd=input('请输入密码:')
    if user_name=='ysj' and pwd=='888888':
        print('系统正在登录,请稍后...')
        break #直接退出循环
    else:
        if i < 2:
            print('用户名或密码不正角,您好还有',2 - i, '次机会')
        i += 1  # 改变循环变量
else:
    print('三次均输入错误')

3.17 跳转语句break

在这里插入图片描述

【代码01】3.17跳转语句break遍历
# coding : utf-8
for i in 'hello':
    if i=='e':
        break
    print(i)
print( ' -----------------------')
for i in range(3):
    user_name = input( '请输入用户名: ')
    pwd = input('请输入密码:')
    if user_name == 'ysj' and pwd == '888888':
        print('系统正在登录,请稍后...')
        break #直接退出循环
    else:
        if i < 2:
            print('用户名或密码不正角,您好还有',2 - i,'次机会')
else:
    print('三次均输入错误')
3.18 跳转语句continue

在这里插入图片描述

【代码01】3.18 跳转语句continue
## 计算1-100之间的偶数和
# coding: utf-8
s=0
i=1
while i<=100:
    if i%2==1:
        i+=1
        continue#累加求和的代码
    s+=i
    i+=1
print( ' 1-100之间的偶数和:',s)

print('--------------------------')
# coding: utf-8
s=0
i=1
for i in range(1,101):
    if i%2==1:
        i+=1
        continue#累加求和的代码
    s+=i
    i+=1
print( ' 1-100之间的偶数和:',s)

3.19 空语句pass

在这里插入图片描述

【代码01】3.19空语句pass
#coding : utf-8
if True:
    pass
while True:
    pass
for i in range(10):
    pass
3.20 课堂练习

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

3.22 实战—-判断闰年

在这里插入图片描述

【代码01】 3.22 实战—-判断闰年
# coding:utf-8
year=eval(input('请输入一个四位的年份:'))
if (year%4==0 and year%100!=0) or (year%400==0):
    print(year,'年是闰年')
else:
    print(year,'年是平年')

3.23 实战二-模拟10086查询功能

在这里插入图片描述

【代码01】3.23实战二-模拟10086查询功能
# coding:utf-8
#(1)初处化变量
answer='y'
#(2)条件判断
while answer=='y':   ##也可以不要answer='y',直接while answer=='y':
    print( ' -----------------欢迎使用10086查询功能------')
    print( '1.查询当前余额')
    print( '2.查询当前的剩余流量')
    print('3.查询当前剩余的通话时长')
    print( '0.退出系统')
    choice=input("请输入您要执行的操作:")
    if choice == '1':
        print('当前余额为:234.5元')
    elif choice == '2 ':
        print('当前的剩余流量为4GB')
    elif choice == '3 ':
        print('当前的剩余通话时长为300分钟')
    elif choice == '0':
        print('程序退出,谢谢您的使用')
        break
    else:
        print('对不起,您输入的有误,请重新输入')

    # (4)改变变量
    answer = input('还继续操作吗?y/n')
else:
    print('程序退出谢谢您的使用')
3.24 实战三-九九乘法表

在这里插入图片描述

【代码01】3.24实战三-九九乘法表
#coding: utf-8
for  i in range(1,10):
    for j in range(1,i+1):
        print(str(j)+'*'+str(i)+'='+str(i*j) ,end='\t ')
    print()
3.25 实战四-猜数游戏

在这里插入图片描述

【代码01】3.25实战四-猜数游戏
#实战四,猜数游戏
import  random
rand=random.randint(1,100)
count=1.#记录猜的次数
while count<=10:
    number=eval(input( '在我心中有个数,1-100之间,请你猜一猜:'))
    if number==rand :
        print('猜对了')
        break
    elif number>rand:
        print('大了')
    else:
        print( '小了')
    count += 1
#判断次数
if count<=3:
    print('真聪明,一共猜了' ,count,'次')
elif count<=6:
    print( '还可以,一共猜了',count,'次')
else:
    print('猜的次数有点多啊,一共猜了',count,'次')

3.26 绘制程序流程图

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

3.27人机对战小游戏-使用程序流程图…

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

3.28 人机对战小游戏-用户出拳-电脑角…
3.29 人机对战小游戏-多局对战
【代码01】3.28-3.30人机对战小游戏
#coding: utf-8
import random
player_score=0
computer_score=0

print("""
*******欢迎来到4399游戏平台*******
      石头    剪刀      布
*******************************
""")
player_name=input('请输入玩家姓名:')
print( '1.貂蝉2.曹操3.诸葛亮')
choice=eval(input('请选择电脑角色:'))
if choice==1:
    computer_name='貂蝉'
elif choice==2:
    computer_name = '曹操'
elif choice==3:
    computer_name = '诸葛亮'
else:
    computer_name='匿名'
print(player_name , 'vs' ,computer_name)
while True:
#玩家出拳
    player_fist=eval(input( '----------请出拳:1.石头2.剪刀3.布--------\n'))
    if player_fist==1:
        player_fist_name='石头'
    elif player_fist==2:
        player_fist_name = '剪刀'
    elif player_fist==3:
        player_fist_name ='布'
    else:
        player_fist_name ='石头'
        player_fist == 1
    computer_fist=random.randint(1,3)
    if computer_fist==1:
        computer_fist_name='石头'
    elif computer_fist==2:
        computer_fist_name ='剪刀'
    else:
        computer_fist_name ='布'
    print(player_name, '出拳: ', player_fist_name)
    print(computer_name, '出拳: ', computer_fist_name)
    if player_fist==computer_fist:
        print('平局')
    elif (player_fist==1 and computer_fist==2) or (player_fist==2 and computer_fist==3)or(player_fist==3 and computer_fist==1):
        print('玩家:', player_name, '胜')
        player_score += 1
    else:
        print('电脑: ', computer_name, '胜')
        computer_score += 1
    answer = input('再来一局不?y/n')
    if answer!='y':
        break

print('------------------------------------')
print(player_name,player_score)
print(computer_name , computer_score)
print('------------------------------------')
if player_score==computer_score:
    print('平局')
elif player_score>computer_score:
    print(player_name,'胜利')
else:
    print(computer_name, '胜利')

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值