python第四章(顺序,选择,循环结构等等及输出各种三角形,菱形,猜一猜小游戏的相关案例)

本文详细介绍了Python编程中的顺序结构、链式赋值、选择结构(包括and、or、if-else等)、循环(while、for)、条件判断(if、嵌套)、break和continue、switch类似功能以及各种图形绘制,如菱形和空心菱形,还展示了猜数字游戏的实现
摘要由CSDN通过智能技术生成

顺序结构

就像是input语句后面接print语句

代码演示

name="张三"
a=b=c=d=100   #链式赋值
a,b,c,d="zoom"   #可以分解赋值
print(a)
print(b)
print(c)
print(d)
name2=input("请输入你的姓名")
age=eval(input("请输入你的年龄"))
luck_number=eval(input("请输入你的幸运数字"))
print(name2)
print(age)
print(luck_number)

代码运行结果

z
o
o
m
请输入你的姓名代
请输入你的年龄18
请输入你的幸运数字21

18
21

选择结构

and or 的使用,类似与C语言的&&和||

代码演示

use_number=input(("请输入你的用户名"))
password=eval(input("请输入你的密码"))
if use_number=="dai" and password==123456 :
    print("登入成功")
else:
    print("你的密码或者用户名不正确")
sorce=eval(input("请输入你的成绩"))
if sorce<0 or sorce>100:
    print("你的成绩输入错误")
else:
    print("你的成绩是",sorce)

代码运行结果

请输入你的用户名dai
请输入你的密码123456
登入成功

请输入你的成绩54
你的成绩是 54

或者

(请输入你的用户名ddd
请输入你的密码123
你的密码或者用户名不正确
请输入你的成绩120
你的成绩输入错误)

单分支选择结构

代码演示

flag=input("请输入一个布尔型的值Ture or false:")
if flag:
    print("ture")
if not flag:
    print("false")
number=eval(input("请输入你的中奖号码:"))
if number==123456:
    print("恭喜你中奖了")
if number!=123456:
    print("谢谢惠顾")
    '''
    if n%2:       #n%2为0,所以不执行
        print(n,"是奇数")
    '''
n=98
if not n%2:          #not 的功能为取反
    print(n,"是偶数")

x=input("请输入一个字符串:")
if  x:
    print("这不是一个空字符串")
if not x:
    print("这是一个空字符串")
a=10
b=5
if a>b:max=a #只有一条语句可以直接写在冒号的后面
print(a,"是最大的值")

代码运行结果

请输入一个布尔型的值Ture or false:Ture
ture
请输入你的中奖号码:123456
恭喜你中奖了
98 是偶数
请输入一个字符串:123#(直接回车不输入代表空字符串,
if not x: print("这是一个空字符串")
这不是一个空字符串
10 是最大的值

双分支选择结构

代码演示

number=eval(input("请输入你的中奖号码"))
if number==123456:
    print("恭喜你中奖了")
else:
    print("谢谢惠顾")
print("~~~~~~以上代码可以简化~~~~~~~~~~")
result="恭喜你中奖了"if number==123456 else"谢谢惠顾"
print(result)
#继续简化
print("恭喜你中奖了"if number==123456 else"谢谢惠顾")

代码运行结果

请输入你的中奖号码123456
恭喜你中奖了
~~~~~~以上代码可以简化~~~~~~~~~~
恭喜你中奖了
恭喜你中奖了

多分支选择结构

代码演示

sorce=eval(input("请输入你的成绩"))
if sorce<0 or sorce>100:
    print("你的成绩有误")
elif 0<=sorce<=60:
    print("E")
elif 60<sorce<70:
    print("D")
elif 70<=sorce<80:
    print("C")
elif 80<=sorce<90:
    print("B")
elif 90<=sorce<=100:
    print("A")

代码运行结果

请输入你的成绩100      
A

或者

请输入你的成绩120
你的成绩有误

if语句的嵌套使用

代码演示

answer=input("请问你喝酒了吗(yes or no)")
if answer"yes":
    proof=eval(input("请输入酒精含量"))
    if proof<20:
        print("酒精含量小,祝你一路平安")
    elif proof<80:
        print("你已经达到酒驾标准,请不要开车")
    else :
        print("你已经达到醉驾标准,千万不要开车")
else :
    print("你走吧,每你什么事情")

代码运行结果

请问你喝酒了吗(yes or no)yes
请输入酒精含量50
你已经达到酒驾标准,请不要开车

或者

请问你喝酒了吗(yes or no)no
你走吧,每你什么事情

循环语句

无限循环while的使用

代码演示

answer=input("你今天要上课吗 yes or no")#初始化变量
while answer=="yes":#条件判断
    print("好好学习天天向上")#语句块
    answer = input("你今天要上课吗 yes or no")#改变变量
s=0
i=1#初始化变量
while i<=100:#条件判断
    s+=i
    i+=1#改变变量
print("1到100的累加和为",s)
'''
条件判断
初始化变量
改变变量
这3个通常是一个变量
'''
while i<=100:#条件判断
    s+=i
    i+=1#改变变量
else:#正常执行完毕执行else(类似break语句为非正常执行)
    print("1到100的累加和为",s)

代码运行结果

你今天要上课吗 yes or noyes
好好学习天天向上
你今天要上课吗 yes or noyes
好好学习天天向上
你今天要上课吗 yes or nono  (一直回答yes将会无限循环)
1到100的累加和为 5050
1到100的累加和为 5050

while语句(用户名的输入)

代码演示

i=0
while i<3:
    use_name=input("请输入你的用户名")
    password=input("请输入你的密码")
    if use_name=="dai"and password=="888888":
        print("登入成功")
        i=8
    else :
        if i<2:
            print("你还有",2-i,"次输入机会")
        i+=1
if i==3:
    print("3次机会已经用完")

代码运行结果

请输入你的用户名dai
请输入你的密码888888
登入成功

或者

请输入你的用户名123
请输入你的密码123
你还有 2 次输入机会
请输入你的用户名123
请输入你的密码123
你还有 1 次输入机会
请输入你的用户名123
请输入你的密码123
3次机会已经用完

for循环的使用

代码演示

for i in "hellow":
    print(i)
for i in range(1,10):#到9
    print(i)
s=0
for i in range(1,11):
    s+=i
print("1加到10的和为:",s)  (Python有严格的缩进,print的位置会影响输出结果)

代码运行结果

h
e
l
l
o
w
1
2
3
4
5
6
7
8
9  (print语句中有自带/n,所以换行,基础章提及)
1加到10的和为: 55

水仙花数

代码演示

for i in range(100,1000):
    sd=i%10
    ten=i//10%10
    hundred=i//100
    if sd**3+ten**3+hundred**3==i:
        print("100到999的水仙花数为",i)
s=0

代码运行结果

100到999的水仙花数为 153
100到999的水仙花数为 370
100到999的水仙花数为 371
100到999的水仙花数为 407

跳转语句(break continue )

代码演示

i=0
while i<3:
    use_name=input("请输入你的用户名")
    password=input("请输入你的密码")
    if use_name=="dai"and password=="888888":
        print("登入成功")
        break#直接跳出循环
    else :
        if i<2:
            print("你还有",2-i,"次输入机会")
        i+=1
if i==3:
    print("3次机会已经用完")

s=0
i=0
while i<=100:
    if i%2==1:
        i+=1
        continue#重新进行判断
    s+=i
    i+=1
print("1到100的偶数和为",s)

代码运行结果

请输入你的用户名dai
请输入你的密码12456
你还有 2 次输入机会
请输入你的用户名dai
请输入你的密码888888
登入成功
1到100的偶数和为 2550

类似C语言中的switch(match)

代码演示

sorce=input("请输入你的成绩等级")
match sorce:
    case "a":
        print("优秀")
    case "b":
        print("良好")
    case "c":
        print("及格")
    case "d":
        print("不及格") (与switch不同的是不用加break来终止,只会输出一个语句块)

代码运行结果

请输入你的成绩等级a
优秀    

案例

输出一些常见图形

长方形

代码演示

for i in range(1,4):
    for j in range(1,5):
        print("*",end="")
    print()

代码运行结果

****
****
****

正直角三角形

代码演示

for i in range(1,6):
    for j in range(1,i+1):
        print("*",end="") (该操作为不换行)
    print()        (该操作为换行)

代码运行结果

*
**
***
****
*****

倒直角三角形

代码演示

for i in range(1, 6):
    for j in range(1, 7-i):
        print("*", end="")
    print()

代码运行结果

*****
****
***
**
*

正三角形

代码演示

for i in range(1, 6):
    for j in range(1, 6-i):
        print(" ", end="")
    for k in range(1, i*2):
            print("*", end="")
    print()

代码运行结果

    *
   ***
  *****
 *******
*********

菱形

代码演示

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="")
    for k in range(1, i*2):
            print("*", end="")
    print()
bottom_row=row//2
for i in range(1, bottom_row+1):
    for j in range(1,i+1):
     print(" ",end="")
    for k in range(1,2*bottom_row-2*i+2):
        print("*",end="")
    print()

代码运行结果

  请输入想打印菱形的行数9
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

空心菱形

代码演示

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="")
    for k in range(1, i*2):
        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):
     print(" ",end="")
    for k in range(1,2*bottom_row-2*i+2):
        if k == 1 or k == 2*bottom_row-2*i+1:
            print("*", end="")
        else:
            print(" ", end="")
    print()

代码运行结果

   请输入想打印空心菱形的行数9
    *
   * *
  *   *
 *     *
*       *
 *     *
  *   *
   * *
    *

猜一猜

代码演示

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<=9:
    print("你的运气还可以,一共猜了",count,"次")
else:
    print("次数用完了,运气不是很好哦一共猜了",count,"次")

代码运行结果

请在1到100之内猜一个数50
小了
请在1到100之内猜一个数60
大了
请在1到100之内猜一个数55
恭喜你,猜对啦
你的运气真好,一共猜了 3 次

或者

请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
次数用完了,运气不是很好哦一共猜了 10 次

也可以先判断输入的数是否为1到100,如果不是重新输入,可以用while语句实现

 


 

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值