《Python课程设计》实验三

@Python课程设计

《Python课程设计》实验三Python

实验目的

  1. 熟悉程序设计结构的三种方式。
  2. 掌握if单分支语句、if二分支语句、if多分支语句及if语句嵌套的使用方法。
  3. 掌握 while语句的使用方法。
  4. 掌握for语句的使用方法。
  5. 理解带 else 子句的循环结构执行流程。
  6. 掌握循环嵌套的使用方法。
  7. 理解循环语句中的 break 语句和continue语句的作用。
  8. 了解使用循环和异常处理结构对用户输入进行约束的用法。

实验内容

(一)阅读程序,分析程序运行的结果,上机输入代码,并验证自己分析的结果是否正确。(30分)

  1. 写出下面程序的运行结果(10分)。
    S=0
    for i in range(1,101):
    S+=i
    else:
    print(i)

  2. 写出下面程序的运行结果(10分)。
    s=0
    for i in range(1,101):
    s+=i
    if i==50:
    print(s)
    break
    else:
    print(1)

  3. 下面的程序是否能够正常执行,若不能,请解释原因,若能,请分析其执行结果。(10分)
    from random import randint
    result=set()
    while True:
    result.add(randint(1,10))
    if len(result)==20:
    break
    print(result)

(二)编写程序,分析以下题目,设计算法,编写代码并运行
4. 请编写一个程序,输出随机生成的10个两位数,并且这些两位随机数是素数,判断素数的算法请参照教材P62页例4-11的算法思想。(20分)

  1. 有1、2、3、4四个数字,能组成多少个互不相同的3位数?(20分)

  2. 输入年份和月份,判断输出该月有多少天。(30分)
    提示:
    (1)1、3、5、7、8、10、12月份有31天,4、6、9、11月份有30天。
    (2)2月闰年有29天,非闰年有28天。
    (3)年份能被4整除且不能被100整除,或者能被400整除,则是闰年。

  3. 编写一个猜数游戏,该游戏会随机产生一个数字,用户可以随意输入一个数进行比较,在比较过程中,会不断提示用户输入的数是大了还是小了,直到用户输入的数等于随机数,程序终止。(30分)

  4. 编写程序,实现抓狐狸游戏。假设墙上有5个洞(编号为0、1,、2、3、4),其中一个洞里有狐狸,人类玩家输入洞口编号,如果洞里有狐狸就抓到了;如果洞里没有狐狸就第二天再来抓。但在第二天人类玩家来抓之前,狐狸会跳到隔壁的洞里。(50分)

  5. 6岁的小明上楼梯,一步只能迈1个或3个台阶,现在有段15个台阶的楼梯,要想上到15个台阶,编写程序计算小明共多少种上法。(50分)

  6. 聪明的尼姆游戏(人机对战)(50分)
    尼姆游戏是个著名的游戏,有很多变种玩法。两个玩家轮流从一堆物品中拿走一部分。 在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一 半物品,然后轮到下一个玩家。拿走最后一个物品的玩家输掉游戏。
    在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是 2 的幂次方减 1——也就 是 3,7,15,31 或 63。除了堆的大小已经是 2 的幂次方减 1,在其他情况下这样走都是符合游 戏规则的。在那种情况下,计算机就按游戏规则随机拿走一些。
    编写程序,模拟聪明版本的尼姆游戏。

实验结果

(一)阅读程序,分析程序运行的结果,上机输入代码,并验证自己分析的结果是否正确。(30分)

  1. 写出下面程序的运行结果(10分)。
    S=0
    for i in range(1,101):
    S+=i
    else:
    print(i)
    在这里插入图片描述

  2. 写出下面程序的运行结果(10分)。
    s=0
    for i in range(1,101):
    s+=i
    if i==50:
    print(s)
    break
    else:
    print(1)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 下面的程序是否能够正常执行,若不能,请解释原因,若能,请分析其执行结果。(10分)
    from random import randint
    result=set()
    while True:
    result.add(randint(1,10))
    if len(result)==20:
    break
    print(result)

错误的原因:集合不能有重复的元素
所以把集合改为数组即可

在这里插入图片描述

(二)编写程序,分析以下题目,设计算法,编写代码并运行
4. 请编写一个程序,输出随机生成的10个两位数,并且这些两位随机数是素数,判断素数的算法请参照教材P62页例4-11的算法思想。(20分)

算法思想:
Step1:导入随机模块random
Step2:设置循环控制变量j的初值为0
Step3:若j小于10,生成一个两位的随机整数n,
Step4:如果n是2或者3,n是素数,输出n,j=j+1,返回Step3;否则假如n是偶数,n不是素数,结束本次循环,返回Step3;如果n不是偶数,计算n除6的余数m,若余数m不等于1且不等于5,n不是素数,结束本次循环,返回Step3;否则判断n是否能被3到n的平方根之间的奇数整除,若n能被一个奇数整除,则n不是素数,返回Step3,否则n是素数,输出n,j=j+1,返回Step3。
在这里插入图片描述
在这里插入图片描述

  1. 有1、2、3、4四个数字,能组成多少个互不相同的3位数?(20分)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 输入年份和月份,判断输出该月有多少天。(30分)
    提示:
    (1)1、3、5、7、8、10、12月份有31天,4、6、9、11月份有30天。
    (2)2月闰年有29天,非闰年有28天。
    (3)年份能被4整除且不能被100整除,或者能被400整除,则是闰年。
    在这里插入图片描述
    在这里插入图片描述

  3. 编写一个猜数游戏,该游戏会随机产生一个数字,用户可以随意输入一个数进行比较,在比较过程中,会不断提示用户输入的数是大了还是小了,直到用户输入的数等于随机数,程序终止。(30分)
    在这里插入图片描述
    在这里插入图片描述

  4. 编写程序,实现抓狐狸游戏。假设墙上有5个洞(编号为0、1,、2、3、4),其中一个洞里有狐狸,人类玩家输入洞口编号,如果洞里有狐狸就抓到了;如果洞里没有狐狸就第二天再来抓。但在第二天人类玩家来抓之前,狐狸会跳到隔壁的洞里。(50分)
    在这里插入图片描述
    在这里插入图片描述

  5. 6岁的小明上楼梯,一步只能迈1个或3个台阶,现在有段15个台阶的楼梯,要想上到15个台阶,编写程序计算小明共多少种上法。(50分)

  6. 聪明的尼姆游戏(人机对战)(50分)
    尼姆游戏是个著名的游戏,有很多变种玩法。两个玩家轮流从一堆物品中拿走一部分。 在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一 半物品,然后轮到下一个玩家。拿走最后一个物品的玩家输掉游戏。
    在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是 2 的幂次方减 1——也就 是 3,7,15,31 或 63。除了堆的大小已经是 2 的幂次方减 1,在其他情况下这样走都是符合游 戏规则的。在那种情况下,计算机就按游戏规则随机拿走一些。
    编写程序,模拟聪明版本的尼姆游戏。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YLTommi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值