实验二 Python流程控制

一、实验目的

1.掌握分支条件语句的使用。
2.掌握分支嵌套语句的使用。
3. 掌握for、while循环语句及break,continue的使用
4. 掌握带else字句的循环语句的使用
5. 掌握循环嵌套的使用

二、实 验 内 容

1.编程计算有固定工资收入的党员每月所缴纳的党费
党费
 

执行结果如图:

2.编程实现袖珍计算器,要求输入两个操作数和一个操作符(+,-,*,/,%),根据操作数计算出运算结果,注意/和%运算符的零除异常问题。运行效果如图:
 

3.密码登录程序。要求:建立一个登录窗口,要求输入帐号、密码和性别。设定密码为“Python123”;若密码正确,如果是男生,则显示“祝贺你,某某先生,成功登录!”; 如果是女生,则显示“祝贺你,某某女士,成功登录!”;若密码不正确,显示“对不起,密码错误,无法登录!”。输入测试时输入自己的真实姓名和性别。
效果图如下:


4、在3题的基础上,增加次数限制,有三次输入机会,若三次密码输入都不正确才显示“对不起,密码错误,无法登录!”。提示:可使用带else字句的循环结构实现
执行效果如图:
 

5.打印出100以内的所有素数,每5个一行。

6.用循环嵌套打印上三角输出的九九乘法表,效果如图:


7.用turtle模块画出花朵图案,用循环实现。效果如图。提示:提示:花朵是由10个边长100的正方形构成。相邻两个正方形偏转角度36度


8*、设计一个人机游戏,完成下面的要求:


运行效果如下图:


要求:上传时写清题号,依次上传代码和执行结果截图。

三、实验总结

总结Python中流程控制语句的用法和其他高级语言的异同,本次实验的收获。

实验内容:

1.编程计算有固定工资收入的党员每月所缴纳的党费

salary=int(input("请输入有固定工资收入的党员的月工资:"))
def f(salary):
    if salary<=3000:
        return 0.005*salary
    elif 3000<salary<=5000:
        return 0.01*salary
    elif 5000<salary<=10000:
        return 0.015*salary
    else:
        return 0.02*salary
print("月工资",salary,",交纳党费",f(salary))

 

2.编程实现袖珍计算器

#实现袖珍计算器
x=float(input("请输入操作数:"))
y=float(input("请输入操作数:"))
a=input("请输入操作符:")
def f1(x,y):
    return x+y
def f2(x,y):
    return x-y
def f3(x,y):
    return x*y
def f4(x,y):
    return x%y
def f5(x,y):
    return x/y
if a=="+":
    print(x,a,y,"=",f1(x,y))
if a=="-":
    print(x,a,y,"=",f2(x,y))
if a=="*":
    print(x,a,y,"=",f3(x,y))
if a=="%":
    if x==0 or y==0:
        print("零除异常!")
    else:
        print(x,a,y,"=",f4(x,y))
if a=="/":
    if x==0 or y==0:
        print("零除异常!")
    else:
        print(x,a,y,"=",f5(x,y))  

 

3.密码登录程序。

#密码登录程序
aa=input("请输入账号(User):")
bb=input("请输入密码(Password):")
cc=input("性别(Gendder:male or female):")
if bb=="Python123":
    if cc=="male" :
        print("祝贺你,",aa,"先生,成功登录!")
    elif cc=="female":
        print("祝贺你,",aa,"女士,成功登录!")
else:
    print("对不起,密码错误,无法登录!")

无法登录情况:

 

成功登录:

 

4.在3题的基础上,增加次数限制,有三次输入机会,若三次密码输入都不正确才显示“对不起,密码错误,无法登录!”。

代码:

#密码登录程序,增加登录次数限制
aa=input("请输入账号(User):")
bb=input("请输入密码(Password):")
cc=input("性别(Gendder:male or female):")
z=3
if bb=="Python123":
    if cc=="male" :
        print("祝贺你,",aa,"先生,成功登录!")
    elif cc=="female":
        print("祝贺你,",aa,"女士,成功登录!")
else:
    for i in range(1,z+1):
        if z>0:
            bb=input("请再次输入密码(Password):")
            z-=1
            print("您还有",z,"次机会")
    else:
        print("对不起,密码错误,无法登录!")

结果输出:

 

5.打印出100以内的所有素数,每5个一行。

 

6.用循环嵌套打印上三角输出的九九乘法表,

7.用turtle模块画出花朵图案,用循环实现。

代码:

 代码实现:

 

8.设计一个人机游戏。

代码展示:

 #设计人机游戏
import random
def game(name,value):
    if value=='0':
        print(name+"出剪刀")
        return 0
    elif value=='1':
        print(name+"出石头")
        return 1
    elif value=='2':
        print(name+"出布")
        return 2
    return -1
while True:
    a1=input("用户请输入(0-剪刀;1-石头;2-布):")
    bb=random.randrange(0,3)
    dian_nao=game("电脑",str(bb))
    aa=game("用户",a1)
    if aa==0 and dian_nao==2:
        print("电脑出布,你出剪刀,用户赢了!")
    elif dian_nao==0 and aa==2:
        print("电脑出剪刀,你出布,用户输了!")
    elif dian_nao==0 and aa==1:
        print("电脑出剪刀,你出石头,用户赢了!")
    elif aa==0 and dian_nao==1:
        print("电脑出石头,你出剪刀,用户输了!")
    elif dian_nao==1 and aa==2:
        print("电脑出石头,你出布,用户赢了!")
    elif aa==1 and dian_nao==2:
        print("电脑出布,你出石头,用户输了!")
    else:
        print("平局!\n")
        continue
    break

代码结果:

实验总结:

通过本次实验,我逐步掌握了分支条件语句的使用,分支条件嵌套语句的使用;并了解了for、while循环语句及break,continue的使用,知晓带else字句的循环语句的使用;熟悉并掌握了循环嵌套的使用方法,受益匪浅。

当然,在实验过程中也遇到了些许问题,如下:

(1)SyntaxError: invalid syntax

这是python在提示无效的语法,原因在于我把%当做百分号给输入了进去,在编程中%是取余运算,出现了符号运用错误,改正过来即可正确输出。

(2)循环嵌套输出九九乘法表无法以正确的上三角形式输出:

 

发现是打印输出的各列空格间隔数有问题,正确调整(1,i)处循环的间隔数即可正确输出。

所以,在调试好代码并成功输出后,实验收获满满。for循环用来遍历集合,通过不使用下标的方式来实现对集合中每一个元素的访问。此外,在while循环中,代码块的程序会被一直执行,直到循环条件为0或者False。这里需要注意,若是循环条件一直为True,则程序无法跳出循环,称为死循环,必要时需要break跳出循环。if...else的语法为:如果符合条件,则...否则....。if…elif…else 语句的语法为:如果符合条件,就…,否则,如果满足另一种条件,则…。使用 continue 语句,我们可以停止循环的当前迭代,并继续下一个;使用 break 语句,即使 while 条件为真,我们也可以停止循环。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值