练习 1:求n个随机整数均值的平方根,整数范围在m与k之间。
In [2]:
import random, math
def test():
i = 0
total = 0
average = 0
number = random.randint(m, k)
while i < n:
i += 1
total += number
number = random.randint(m, k)
print('随机数是:', number)
average = int(total/n)
return math.sqrt(average)
#主程序
m=int(input('请输入一个整数下限:'))
k=int(input('请输入一个整数上限:'))
n=int(input('随机整数的个数是:'))
test()
Out[2]:
练习 2:写函数,共n个随机整数,整数范围在m与k之间,(n,m,k由用户输入)。求1:西格玛log(随机整数),2:西格玛1/log(随机整数)
In [3]:
import random, math
def test1():
i = 0
total = 0
number = random.randint(m,k)
result = math.log10(number)
while i < n:
i += 1
number = random.randint(m,k)
print('执行1的随机整数是:', number)
result += math.log10(number)
return result
def test2():
i = 0
total = 0
number = random.randint(m,k)
result = 1/(math.log10(number))
while i < n:
i += 1
number = random.randint(m,k)
print('执行2的随机整数是:', number)
result += 1/(math.log10(number))
return result
#主程序
n = int(input('随机整数的个数是:'))
m = int(input('请输入一个整数下限:'))
k = int(input('请输入一个整数上限:'))
print()
print('执行1的结果是:', test1())
print()
print('执行2的结果是:', test2())
练习 3:写函数,求s=a+aa+aaa+aaaa+aa...a的值,其中a是[1,9]之间的随机整数。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入。
In [5]:
import random
def test():
a = random.randint(1,9)
print('随机整数a是:', a)
i = 0
s = 0
number = 0
total = 0
while i < n:
s = 10**i
number += a * s
total += number
i += 1
return total
#主程序
n = int(input('需要相加的个数是:'))
print('结果是:', test())
挑战性练习:仿照task5,将猜数游戏改成由用户随便选择一个整数,让计算机来猜测的猜数游戏,要求和task5中人猜测的方法类似,但是人机角色对换,由人来判断猜测是大、小还是相等,请写出完整的猜数游戏。
In [1]:
import random, math
def win():
print(
'''
======YOU WIN=======
."". ."",
| | / /
| | / /
| | / /
| |/ ;-._
} ` _/ / ;
| /` ) / /
| / /_/\_/\
|/ / |
( ' \ '- |
\ `. /
| |
| |
======YOU WIN=======
'''
)
def lose():
print(
'''
======YOU LOSE=======
.-" "-.
/ \
| |
|, .-. .-. ,|
| )(__/ \__)( |
|/ /\ \|
(@_ (_ ^^ _)
_ ) \_______\__|IIIIII|__/__________________________
(_)@8@8{}<________|-\IIIIII/-|___________________________>
)_/ \ /
(@ `--------`
======YOU LOSE=======
'''
)
def game_over():
print(
'''
======GAME OVER=======
_________
/ ======= \
/ __________\
| ___________ |
| | - | |
| | | |
| |_________| |________________
\=____________/ )
/ """"""""""" \ /
/ ::::::::::::: \ =D-'
(_________________)
======GAME OVER=======
'''
)
def show_team():
print('''
***声明***
本游戏由PXS小机智开发''')
def show_instruction():
print('''
游戏说明
玩家选择一个任意整数,计算机来猜测该数。
若计算机在规定次数内猜中该数,则计算机获胜。
若规定次数内没有猜中,则玩家获胜。''')
def menu():
print('''
=====游戏菜单=====
1. 游戏说明
2. 开始游戏
3. 退出游戏
4. 制作团队
=====游戏菜单=====''')
def guess_game():
n = int(input('请输入一个大于0的整数,作为神秘整数的上界,回车结束。'))
max_times = int(math.log(n,2))
print('规定猜测次数是:', max_times, '次')
print()
guess = random.randint(1, n)
print('我猜这个数是:', guess)
guess_times = 1
max_number = n
min_number = 1
while guess_times < max_times:
answer = input('我猜对了吗?(请输入“对”或“不对”)')
if answer == '对':
print(lose())
break
if answer == '不对':
x = input('我猜大了还是小了?(请输入“大”或“小”)')
print()
if x == '大':
max_number = guess-1
guess = random.randint(min_number,max_number)
print('我猜这个数是:', guess)
guess_times += 1
print('我已经猜了', guess_times, '次')
print()
if guess_times == max_times:
ask = input('''***猜测已达规定次数***
我猜对了吗?(请输入“对”或“不对”)''')
if ask == '不对':
end()
break
else:
lose()
if x == '小':
min_number = guess + 1
guess = random.randint(min_number,max_number)
print('我猜这个数是:', guess)
guess_times += 1
print('我已经猜了', guess_times, '次')
print()
if guess_times == max_times:
ask = input('''***猜测已达规定次数***
我猜对了吗?(请输入“对”或“不对”)''')
if ask == '不对':
end()
break
else:
lose()
def end():
a = input('你的神秘数字是:')
print()
print('原来是', a, '啊!')
win()
#主函数
def main():
while True:
menu()
choice = int(input('请输入你的选择'))
if choice == 1:
show_instruction()
elif choice == 2:
guess_game()
elif choice == 3:
game_over()
break
else:
show_team()
#主程序
if __name__ == '__main__':
main()
In [ ]: