In [6]:
#挑战性练习:仿照task5,将猜数游戏改成由用户随便选择一个整数,让计算机来猜测的猜数游戏,要求和task5中人猜测的方法类似,
#但是人机角色对换,由人来判断猜测是大、小还是相等,请写出完整的猜数游戏。
import random,math
def win ():
print(
'''
======恭喜你,你赢了=======
."". ."",
| | / /
| | / /
| | / /
| |/ ;-._
} ` _/ / ;
| /` ) / /
| / /_/\_/\
|/ / |
( ' \ '- |
\ `. /
| |
| |
======恭喜你,你赢了=======
'''
)
def lose ():
print(
'''
======YOU LOSE=======
.-" "-.
/ \
| |
|, .-. .-. ,|
| )(__/ \__)( |
|/ /\ \|
(@_ (_ ^^ _)
_ ) \_______\__|IIIIII|__/__________________________
(_)@8@8{}<________|-\IIIIII/-|___________________________>
)_/ \ /
(@ `--------`
======YOU LOSE=======
'''
)
def game_over ():
print(
'''
======GAME OVER=======
_________
/ ======= \
/ __________\
| ___________ |
| | - | |
| | | |
| |_________| |________________
\=____________/ )
/ """"""""""" \ /
/ ::::::::::::: \ =D-'
(_________________)
======GAME OVER=======
'''
)
def show_team ():
print ('乱世一人舞倾情制作,hiahiahiahia~')
def show_instruction():
print ('''输入一个数作为神秘整数的上界
输入你的答案,直到计算机猜中为止。''')
def menu():
print ('''====游戏菜单====
1.游戏说明
2.开始游戏
3.退出游戏
4.制作团队
====游戏菜单====''')
def guess_game ():
n = int (input ('请输入一个大于0的整数,作为神秘整数的上界,回车结束'))
number = int (input ('请输入您的答案:'))
max_times = math.ceil(math.log(n,2))
guess_times = 0
guess = random.randint(1,n)
guess1 = guess
while guess_times < max_times:
guess_times += 1
print ('计算机猜测的数是:',guess)
print ('一共可以猜',max_times,'次')
print ('计算机已经猜了',guess_times,'次')
if guess == number:
win()
print ('神秘数字是:',guess)
print ('计算机还可以猜',max_times - guess_times ,'次')
break
elif guess > number:
print ('不好意思,计算机你猜大了')
guess2 = guess
if number > guess1:
guess = random.randint(guess1 + 1,guess2 - 1)
else:
guess = random.randint(1,guess2 - 1)
print ('你还可以猜',max_times - guess_times,'次')
else:
print ('抱歉,计算机你又猜小了')
guess2 = guess
if number < guess1:
guess = random.randint(guess2 + 1,guess1 - 1)
else:
guess = random.randint(guess2 + 1,n)
print ('你还可以猜',max_times - guess_times,'次')
guess1 = guess2
else:
print ('神秘数字是',number)
lose()
#主函数
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 [9]:
#练习 1:写函数,求n个随机整数均值的平方根,整数范围在m与k之间。
import random,math
def avg_of_randoms(m,k,n):
i = 0
total_num = 0
avg = 0
gen = 0
while i < n:
number = random.randint(m,k)
total_num += number
i += 1
else:
avg = total_num / n
gen = math.sqrt(avg)
print ('n个随机整数均值的平方根为:',gen)
def main ():
m = int (input ('请输入取值范围的下限:'))
k = int (input ('请输入取值范围的上限:'))
n = int (input ('请输入取值个数:'))
avg_of_randoms(m,k,n)
#主程序
if __name__ == '__main__':
main()
In [10]:
#写函数,共n个随机整数,整数范围在m与k之间,求西格玛log(随机整数)及西格玛1/log(随机整数)
import random,math
def sum_of_logRandoms(m,k,n):
i = 0
temp1 = 0
temp2 = 0
total_num1 = 0
total_num2 = 0
while i < n:
number = random.randint(m,k)
temp1 = math.log(number,2)
total_num1 += temp1
temp2 = 1 / temp1
total_num2 += temp2
i += 1
else:
print ('n个在m,k之间的随机整数对数求和为:',total_num1)
print ('n个在m,k之间的随机整数对数求和为:',total_num2)
def main ():
m = int (input ('请输入取值范围的下限:'))
k = int (input ('请输入取值范围的上限:'))
n = int (input ('请输入取值个数:'))
sum_of_logRandoms(m,k,n)
#主程序
if __name__ == '__main__':
main()
In [11]:
#练习 3:写函数,求s=a+aa+aaa+aaaa+aa...a的值,其中a是[1,9]之间的随机整数。
#例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入
import random,math
def randoms_plus (n):
total_num = 0
i = 0
base_num = random.randint(1,9)
while i < n:
j = i
number = 0
while j >= 0:
number += base_num * pow(10,j)
j -= 1
total_num += number
i += 1
print (n,'个以',base_num,'为基本的数a+aa+aaa+aaaa+aa...a的值为:',total_num)
def main():
n = int (input('请输入相加整数的个数并以回车结束:'))
randoms_plus(n)
#主程序
if __name__ == '__main__':
main()