Python实例解析:猜数字游戏

来自CloudWiki
跳转至: 导航搜索

实例解析:猜数字游戏

编写一个猜数字游戏的程序,在1到1000之间随机产生一个数,然后请用户循环猜这个数字,对于每个答案只回答猜大了或猜小了,直到猜准确为止,输出用户的猜测次数。

当然运气好一次就能猜,对运气不好,要才999次,这就是猜测次数的边界了,来试一试,用户究竟几次能猜对呢。

分析

根据程序需求,需要考虑不断的让用户循环输入猜测值,并根据猜测值和目标值之间的比较决定程序逻辑。

提示:为了产生随机数,需要使用Python语言的随机数标准库random:

import random
target = random.randint(1,1000)
  • 用什么语句能让用户循环猜某个数字 ?
  • 用什么语句能判断猜大还是猜小?
  • 怎样实现猜准确为止(即用什么语句可退出)?
  • 用户的猜测次数怎样记录?

初始版

import random
target = random.randint(1,1000)
count = 0
while True:
     guess =eval(input('请输入一个猜测的整数(1至1000):'))
     count = count +1
     if guess > target:
          print('猜大了')
     elif guess < target:
          print('猜小了')
     else:
          print('猜对了')
          break

print('此轮的猜测次数是:',count)

异常处理版

import random
target = random.randint(1,1000)
count = 0
while True:
     try:
          guess =eval(input('请输入一个猜测的整数(1至1000):'))
     except:
          print('输入有误,请重试,不计入猜测次数哦!')
          continue
     count = count +1
     if guess > target:
          print('猜大了')
     elif guess < target:
          print('猜小了')
     else:
          print('猜对了')
          break

print('此轮的猜测次数是:',count)

练习2

输入一个年份,输出是否是闰年(什么是闰年,大家可以自行百度)

while True:
    try:
        year = eval(input("请输入您的年份:"))
    except:
        print("请输入正确的数字")
        continue
    if (year%4==0 and year %100 !=0) or year %400 ==0:
        print("该年时闰年")
    else:
        print("不是闰年")

练习3

统计不同字符个数,用户从键盘输入一行字符,编写一个程序,统计并输出其中英文字符、数字、空格和其他字符的个数。

#a - z : 97 - 122,A - Z : 65 - 90
def count(s):
    s1,s2,s3,s4=0,0,0,0
    for ch in s:
        if 'a'<=ch <= 'z'\
           or 'A'<= ch <= 'Z':
            s1 +=1

        elif u'\u4e00' <= ch <= u'\u9fff':
            s2 +=1

        elif ch == ' ':
            s3 +=1

        elif '0'<=ch<='9':
            s4 +=1

    print(s1,s2,s3,s4)

count("hellO  123迷惑")