479643539 发表于 2021-5-12 23:33:35

三节课小白求教大神,猜0-100随机数字怎么码

零基础小白学了甲鱼老师的前三节课,里面有个猜数字游戏,突发奇想也做一个,在0-100中随机挑选一个来猜,猜不中的话会有相应的提示,例如,答案数字是55,第一猜20,会提示20~100,第二次猜60,会提示20~60,第三次猜45,会提示45~60,直到正确答案被猜到停止,机会有三次(可以改掉不要)。想了两天没试成功,所以来问问大神们做,下面是我的代码:
import random
list=[]
for o in range(0,100):
list.append(o)
num=(random.choice(list))
number=input("0到100中猜数字")

times= 2

while True:
AA=min(int(number),100)
BB=max(0,int(number))
if int(number) == num:
    print("猜对了")
    break
if int(number) > num:
    number = input("0 ~"+ str(AA))
if int(number) < num:
    number = input(str(BB)+"~ 100")
if int(number) > BB :
    number = input(str(AA)+"~"+str(number))
if int(number) < AA:
    number = input(str(number)+"~"+str(BB))
   
times-=1
if times == 0:
    print("机会用完了")
print("正确的答案是"+str(num))



错是肯定错了,就是不知道怎么改才能实现那个游戏,希望大神们帮帮小白

qq1151985918 发表于 2021-5-13 01:01:16

本帖最后由 qq1151985918 于 2021-5-13 18:24 编辑

from random import randint

def input_num(prompt = "请输入:") -> int:
    number = input(prompt)
    while not number.isdigit():
      print(f"{'-' * 8}您的输入:{number},不是数字,请重新输入:\n{'-' * 8}", end = "")
      number = input(prompt)
    return int(number)

start_num, stop_num = 0, 100
rand_num = randint(start_num, stop_num)

times = 3
print(f"开始猜数字,您一共有 {times} 次机会\n")
for i in range(1, times + 1):
    guess_num = input_num(f"{i}.请输入您猜测的数字({start_num} - {stop_num}):")
    while guess_num not in range(start_num, stop_num):
      print(f"{'-' * 8}您的输入:{guess_num},不在范围,请重新输入:\n{'-' * 8}", end = "")
      guess_num = input_num(f"请输入您猜测的数字({start_num} - {stop_num}):")
    if guess_num == rand_num:
      print(f"{'-' * 4}猜对了!您猜的数字:{guess_num},随机数字:{rand_num}\n")
      break
    else:
      print(f"{'-' * 4}猜错了!您还有 {times - i} 次机会\n")
      if rand_num in range(start_num, guess_num):
            stop_num = guess_num
      else:
            start_num = guess_num
else:
    print(f"您的 {times} 次机会用完了,随机数字是:{rand_num}")

尹十三 发表于 2021-5-13 15:30:39

3节课这么厉害啊

私はり 发表于 2021-5-13 15:59:07

qq1151985918 发表于 2021-5-13 01:01


学习了

479643539 发表于 2021-5-14 17:34:05

qq1151985918 发表于 2021-5-13 01:01


(⊙o⊙)哇,回复的好快呀,谢谢大神,里面好多函数够我学习一段时间了,请问那个f是您的代号么?(我听说很多码农都有自己的代号在自己的代码里)我没看到您有为f赋值,我删掉了f也没有影响这个游戏的运行呀

479643539 发表于 2021-5-14 17:43:47

尹十三 发表于 2021-5-13 15:30
3节课这么厉害啊

甲鱼老师说Python是一个积木游戏,所以第一段随机数字是网上学习来的。

qq1151985918 发表于 2021-5-14 17:49:53

479643539 发表于 2021-5-14 17:34
(⊙o⊙)哇,回复的好快呀,谢谢大神,里面好多函数够我学习一段时间了,请问那个f是您的代号么?(我听说 ...

字符串前面的 f 是一种格式化方式,配合 { } 使用, { } 内可以添加变量或者代码来显示变量内容
删除掉是有影响的,虽然不会报错,但是显示的打印信息就不是想要的信息了,不信你删掉试试看。

479643539 发表于 2021-5-14 23:01:57

学到了,谢谢大神

不自律的笨鸟 发表于 2021-5-15 02:57:07

感觉要学习的东西还有很多
页: [1]
查看完整版本: 三节课小白求教大神,猜0-100随机数字怎么码