1.猜数字游戏。在程序中预设一个0-9之间的整数,让用户通过键盘输入所猜的数,如果大于预设的数,显示“你猜的数字大于正确答案”;小于预设的数,显示“你猜的数字小于正确答案”,如此循环,直至猜中该数,显示“你猜了N次,猜对了,真厉害”,其中N是用户输入数字的次数。
guess=0 #输入的数字
secret=7 #预设的数字
times=1 #猜数字的次数
print("---------欢迎参加猜数字游戏,请开始---------")
while guess!=secret: #条件
guess=int(input("@数字区间0-9,请输入你猜的数字:"))
print("你输入的数字是:",guess)
if guess==secret: #如果输入的数字等于预设的数字
print("你猜了{}次,猜对了,真厉害".format(times))
else:
if guess<secret: #如果输入的数字小于预设的数字
print("你猜的数字小于正确答案")
else: #如果输入的数字大于预设的数字
print("你猜的数字大于正确答案")
times+=1 #每猜一次计数自加1
print("游戏结束")
2.猜数字游戏续。改编1中的猜数字游戏,让计算机能够随机产生一个预设数字,范围在0-100之间,其他游戏规则不变。
import random
guess=0 #输入的数字
times=1 #猜数字的次数
secret=random.randint(0,100) #生成随机数
print("---------欢迎参加猜数字游戏,请开始---------")
while guess!=secret: #条件
guess=int(input("@数字区间0-100,请输入你猜的数字:"))
print("你输入的数字是:",guess)
if guess==secret: #如果输入的数字等于预设的数字
print("你猜了{}次,猜对了,真厉害".format(times))
else:
if guess<secret: #如果输入的数字小于预设的数字
print("你猜的数字小于正确答案")
else: #如果输入的数字大于预设的数字
print("你猜的数字大于正确答案")
times+=1 #每猜一次计数自加1
print("游戏结束")
- 猜数字游戏再续。用变量maxtimes设置允许猜数字的最大次数(比如最多只允许猜6次maxtimes=6),并在猜错后提示还有几次机会。用for循环改写整个程序。(提示,猜对后可使用break跳出循环)
import random
guess=0 #输入的数字
times=1 #猜数字的次数
secret=random.randint(0,100) #生成随机数
maxtimes=6 #猜数字的最大次数
print("---------欢迎参加猜数字游戏,请开始---------")
for value in range(1,maxtimes+1):
if guess != secret: # 条件
guess = int(input("@数字区间0-100,请输入你猜的数字:"))
print("你输入的数字是:", guess)
maxtimes -=1 #每猜一次次数自减1
if guess == secret: # 如果输入的数字等于预设的数字
print("你猜了{}次,猜对了,真厉害".format(times))
break
else:
if guess < secret: # 如果输入的数字小于预设的数字
print("你猜的数字小于正确答案")
else: # 如果输入的数字大于预设的数字
print("你猜的数字大于正确答案")
print("你还有 %d 次机会" %(maxtimes))
times += 1 # 每猜一次计数自加1
print("游戏结束")
4.猜数字游戏之续了又续。为了增加代码的复用性,将猜数字游戏封装为函数GuessSecret(maxtimes),将允许猜数字的最大次数maxtimes作为参数。在调用GuessSecret时允许用户自己设置maxtimes,美化程序的输出界面。
import random
def GuessSecret(maxtimes):
guess = 0 # 输入的数字
times = 1 # 猜数字的次数
secret = random.randint(0, 100) # 生成随机数
print("--------------------------------------------")
print("---------欢迎参加猜数字游戏,请开始---------")
print("--------------------------------------------")
for value in range(1, maxtimes + 1):
if guess != secret: # 条件
guess = int(input("@数字区间0-100,请输入你猜的数字:"))
print("你输入的数字是:", guess)
maxtimes -= 1 # 每猜一次次数自减1
if guess == secret: # 如果输入的数字等于预设的数字
print("你猜了{}次,猜对了,真厉害".format(times))
break
else:
if guess < secret: # 如果输入的数字小于预设的数字
print("你猜的数字小于正确答案")
else: # 如果输入的数字大于预设的数字
print("你猜的数字大于正确答案")
print("你还有 %d 次机会" % (maxtimes))
times += 1 # 每猜一次计数自加1
print("游戏结束")
maxts=eval(input("@请输入猜数字的最大次数:"))
GuessSecret(maxts) #调用函数
执行效果如下图所示。
5. 递归法绘制科赫曲线。“科赫曲线绘制”程序(利用强大的搜索能力)逐行输入其中,按自己的思路进行修改并运行效果,体会递归思想。
import turtle
def koch(size, n): #雪花的大小,及阶数
if n == 0:
turtle.fd(size) #让画笔向前移动size
else:
for angle in [0, 60, -120, 60]:
turtle.left(angle) #逆时针移动角度angel
koch(size / 3, n - 1) #递归调用
def main(): #设置一系列参数
turtle.setup(600, 600) #设置窗体大小为600,600
turtle.penup() #提起笔移动,但不绘图
turtle.goto(-200, 100) #将画笔移动到坐标为-200,100的位置
turtle.pendown() #移动时绘制图形
turtle.pensize(2) #设置画笔粗细为2
level = 3 # 3阶科赫雪花,阶数
koch(400, level) #为雪花设置大小及阶数
turtle.right(120) #顺时针移动120度
koch(400, level) #为雪花设置大小及阶数
turtle.right(120) #顺时针移动120度
koch(400, level) #为雪花设置大小及阶数
turtle.hideturtle() #隐藏画笔的turtle形状
main()