1、游戏场景与规则
程序在10至100之间随机选择一个数,让用户来猜。如果用户猜的数大了,程序要给出提示:数大了;如果用户猜的数小了,程序要给出提示:数小了;如果用户猜的正确,程序要给出提示:猜对了。
2、编程思路
编程思路就是用程序解决问题的思维过程,当一个问题需要用程序来解决时,这个问题也称为需求。
本案例的需求就是程序随机在10至100之间选择一个数,让用户来猜,并根据用户猜的数给出不同提示,直至用户猜对为止。
当我们从用户那儿拿到需求后,需要对需求进行分析,确定程序需要的功能和数据。对需求进行分析常用的方法是数据流分析法,即通过分析需求描述中的数据流动及在各个环节上对数据进行的处理,来定义程序的功能和数据。
数据流分析法的成果就是数据流图模型。

数据流图类似于流程图,也是由简单的几个图形符号构成。矩形图形符号表示一个实体,或者是程序的用户、或者是程序相关的人员或组织;圆形图形符号表示对数据的处理过程,也就是输入数据经过处理后变成了输出数据;带箭头的线条表示一个数据的流向。
本案例的数据流图模型很简单,根据案例的需求描述,程序需要处理的数据为:随机数、用户猜测的数,根据用户猜测的数输出不同判断结果。
根据数据流向,程序可以划分为两个处理过程:一个处理过程是创建随机数;另外一个处理过程是判断用户输入的猜测数,并根据猜测数输出不同的判断结果。
随机数被限制为10至100范围内。
2、 程序流程图

(1)调用函数创建一个10至100范围以内的随机数;
(2)要求用户输入一个10至100范围内的数;
(3)调用函数判断用户猜测的数,函数返回success表示猜对了,程序输出“猜对了”,程序结束;
(4)输出函数返回的ret信息,跳转到步骤(2)。

random_number函数调用random模块的randint函数创建一个随机数,randint函数可以创建一个指定范围内的随机整数,传入的参数10指定了范围的下限,参数100指定了范围的上限,范围也包括10和100。

judge函数传入num和guess,num是随机数,guess是用户输入的猜测数。函数使用多重条件结构来判断num和guess的关系:若num等于guess,返回success;若num大于guess,返回数小了;若num<guess,返回数大了。
4、程序代码及解读
程序代码如下:
'''
程序文件:main.py
功能描述:猜数游戏
代码编写时间:2020/05/07
作者:编程训练营
'''
# 导入random模块
import random as rm
# 创建随机数
def random_number():
# 创建10至100范围内的随机数
num = rm.randint(10,100)
return num
# 判断猜测的数
def judge (num,guess):
# 若num等于guess
if num == guess:
return "sucess"
elif num > guess:
return "数小了"
else:
return "数大了"
# 程序入口
if __name__ == '__main__':
# 创建随机数
num = random_number()
# 输出提示内容
print("我想到了一个数,你能猜到它吗,这个数在10至100范围内")
while(True):
# 要求用户输入一个数
guess = input("请输入你猜测的数:")
# 调用judge函数判断猜测的数
ret = judge(num,int(guess))
if ret == "sucess":
print("很好,你猜对了")
break;
print(ret)代码解读
代码定义了random_number函数,用于创建10至100范围内的随机数。定义了judge函数,用于判断用户输入的猜测数和随机数的相等或大小关系。
主体代码首先调用random_number函数创建一个随机数,创建的随机数赋值给num变量,然后使用print函数输出提示信息,提示信息为“我想到了一个数,你能猜到它吗,这个数在10至100范围内”。
主体代码使用while循环来执行猜数过程。在循环过程中,用户输入一个猜测的数,该数被赋值给guess,然后调用judge函数来判断num和guess的相等或大小关系。
如果judge函数返回“sucess”,表示num与guess相等,用户猜对了,调用break语句退出循环,程序结束。否则输出judge函数返回的提示信息,并要求用户继续猜数。
