本帖最后由 jackz007 于 2022-8-10 23:41 编辑
你的代码太不精炼,试试这个:import random
print('欢迎来玩猜数字游戏 , 请选择模式 .')
print('( 如果一次猜中请去买彩票 )')
while True:
print('''1. 1~10
2. 1~50
3. 1~100
4. 1~500
5. 1~1000
6. 结束''')
print('''
----------【请选择模式】----------''')
s = input('>> ') . strip()
if s:
x = int(s)
if x > 0 and x < 7:
if x == 6:
break
else:
p = ((random.randint(1,10) , 5 , '(1-10)') , (random.randint(1,50) , 10 , '(1-50)') , (random.randint(1,100) , 15 , '(1-100)') , (random.randint(1,500) , 20 , '(1-500)') , (random.randint(1,1000) , 25 , '(1-1000)'))
k , t , m = p[x - 1][0] , p[x - 1][1] , p[x - 1][2]
while t:
print('您有 %d 次机会 : ' % t)
print('----------【猜】----------')
c = int(input('%s >> ' % m))
if c == k:
print()
print('哇 , 厉害呀')
print('祝贺,您猜对了!')
if t == p[x - 1][1]:
print('强烈建议去买彩票!!!')
print()
break
else:
s = ''
d = c - k if c > k else k - c
e = '+' if c > k else '-'
while d:
s = s + e
d //= 10
print('哥, 大了大了 ' + s) if c > k else print('哥, 小了小了 ' + s)
t -= 1
else:
print('很遗憾,次数已经用完!')
print('目标数字是 : %d' % k)
else:
break
print()
print('游戏结束')
运行实况:D:\[00.Exerciese.2022]\Python>python x.py
欢迎来玩猜数字游戏 , 请选择模式 .
( 如果一次猜中请去买彩票 )
1. 1~10
2. 1~50
3. 1~100
4. 1~500
5. 1~1000
6. 结束
----------【请选择模式】----------
>>5
您有 25 次机会 :
----------【猜】----------
(1-1000) >> 567
哥, 大了大了 +++
您有 24 次机会 :
----------【猜】----------
(1-1000) >> 345
哥, 小了小了 ---
您有 23 次机会 :
----------【猜】----------
(1-1000) >> 456
哥, 大了大了 ++
您有 22 次机会 :
----------【猜】----------
(1-1000) >> 412
哥, 小了小了 --
您有 21 次机会 :
----------【猜】----------
(1-1000) >> 432
哥, 小了小了 --
您有 20 次机会 :
----------【猜】----------
(1-1000) >> 452
哥, 大了大了 +
您有 19 次机会 :
----------【猜】----------
(1-1000) >> 448
哥, 大了大了 +
您有 18 次机会 :
----------【猜】----------
(1-1000) >> 445
哥, 小了小了 -
您有 17 次机会 :
----------【猜】----------
(1-1000) >> 446
哇 , 厉害呀
祝贺,您猜对了!
1. 1~10
2. 1~50
3. 1~100
4. 1~500
5. 1~1000
6. 结束
----------【请选择模式】----------
>>
【注】:'+'、'-' 代表误差方向,其数量则代表误差级别,一、二、三分别代表误差值为一、二、三位数。 |