python项目实战---猜数字

1. 实战目标

编写一段python程序,随机生成一个0到100之间的整数number,接收用户的输入,处理用户输入逻辑如下:

  1. 如果用户输入的内容不是数字,提示用户输入0到100之间的整数
  2. 如果用户输入的数值比number大,则提示用户输入比随机数大
  3. 如果用户输入的数值比number小,则提示用户输入比随机数小
  4. 当用户输入的数值与number相同时,提示用户猜中了,并结束程序

2. 考察知识点

  1. input函数
  2. 类型转换
  3. 字符串
  4. random模块生成随机数
  5. while循环
  6. break
  7. continue

3. 思路讲解与实现

3.1 while循环

这个问题我们必须用while循环来做,因为while循环更容易写出一个死循环,因为如果用户一直猜不中,那么程序就必须允许用户一直输入。

3.2 input函数

input函数接收用户在终端的输入,返回的是字符串,程序需要用这个数值与随机生成的答案进行比较,所以得使用int函数做转换,但如果用户输入的内容压根就不是数字,int函数是无法转换的,对于这种情况,需要使用字符串的isdigit方法来判断字符串里的内容是不是都是数字。

3.3 最终实现

import random

number = random.randint(0, 100)

while True:
    value = input("请输入一个0到100之间的数:")
    if not value.isdigit():
        continue
    value = int(value)
    if value > number:
        print("你输入的数值比随机数大")
        continue
    elif value < number:
        print("你输入的数值比随机数小")
        continue
    else:
        print("你猜中了")
        break

第一个continue是必须要有的,否则就会执行int(value),如果字符串内容不是数字就会引发异常,而第2和第3个continue可有可无,如果没有,程序也会进入下一次循环。

break终止while循环,程序结束。

4. 完整代码

import random

number = random.randint(0, 100)

while True:
    value = input("请输入一个0到100之间的数:")
    if not value.isdigit():
        continue
    value = int(value)
    if value > number:
        print("你输入的数值比随机数大")
        continue
    elif value < number:
        print("你输入的数值比随机数小")
        continue
    else:
        print("你猜中了")
        break

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案