In [2]:
#练习 1:写函数,求n个随机整数均值的平方根,整数范围在m与k之间。
#练习 2:写函数,共n个随机整数,整数范围在m与k之间,求西格玛log(随机整数)及西格玛1/log(随机整数)
#练习 3:写函数,求s=a+aa+aaa+aaaa+aa...a的值,其中a是[1,9]之间的随机整数。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入。
#挑战性练习:将猜数游戏改成由用户随便选择一个整数,让计算机来猜测的猜数游戏。
In [9]:
#练习 1:
def my_sqrt():
import random,math
n=int(input('请输入一个整数n(即将要求平均值的平方根的整数的个数):'))
i=0
num=0
total=0
m=int(input('请输入随机整数的下限:'))
k=int(input('请输入随机整数的上限:'))
while(i<n):
num=random.randint(m,k)
print (num)
i+=1
total+=num
ave=total/n
print ('输入的',n,'个整数的平均值的平方根为:')
return math.sqrt(ave)
my_sqrt()
Out[9]:
In [4]:
#练习 2:
def my_log():
import random,math
n=int(input('请输入一个整数n(即随机整数的个数):'))
i=0
num1=0
num2=0
total1=0
total2=0
m=int(input('请输入随机整数的下限:'))
k=int(input('请输入随机整数的上限:'))
while(i<n):
randnum=random.randint(m,k)
num1=math.log(randnum)
num2=1/math.log(randnum)
print (randnum)
i+=1
total1+=num1
total2+=num2
print ('西格玛log(随机整数)及西格玛1/log(随机整数)分别为:')
return total1,total2
my_log()
Out[4]:
In [15]:
#练习 3:写函数,求s=a+aa+aaa+aaaa+aa...a的值,其中a是[1,9]之间的随机整数。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入。
def my_sum():
import random
n=int(input('请输入一个整数n(即求和整数的个数):'))
randnum=random.randint(1,9)
i=0
total2=0
while(i<n):
i+=1
j=0
total1=0
while(j<i):
num=randnum*(10**j)
total1+=num
j+=1
print(total1)
total2+=total1
print('以上',n,'个整数的和为',total2)
return total2
my_sum()
Out[15]:
In [19]:
#挑战性练习:
import random,math
def win():
print(
'''
======恭喜你,你赢了,机器没有猜中=======
."". ."",
| | / /
| | / /
| | / /
| |/ ;-._
} ` _/ / ;
| /` ) / /
| / /_/\_/\
|/ / |
( ' \ '- |
\ `. /
| |
| |
======恭喜你,你赢了,机器没有猜中=======
'''
)
def welcome():
print(
'''
======欢迎来到猜数游戏=======
/ \ , ,
_._ _ |oo| _ / \__/ \
_|||| ((/ () \)) / \
|||||/| ( ==== ) |oo|
\____/ _`\ /'_ / \
/ /.-' /\<>/\ `\.( () )_._
| ` / \/ \ /`'--'////)
\__,-'`| |. |\/ |/\/\|"\"`
| |. | \___/\___/
| |. | | |
======欢迎来到猜数游戏=======
'''
)
def lose():
print(
'''
======抱歉,你输了,机器猜中了=======
.-" "-.
/ \
| |
|, .-. .-. ,|
| )(__/ \__)( |
|/ /\ \|
(@_ (_ ^^ _)
_ ) \_______\__|IIIIII|__/__________________________
(_)@8@8{}<________|-\IIIIII/-|___________________________>
)_/ \ /
(@ `--------`
======抱歉,你输了,机器猜中了=======
'''
)
def game_over():
print(
'''
======GAME OVER=======
_________
/ ======= \
/ __________\
| ___________ |
| | - | |
| | | |
| |_________| |________________
\=____________/ )
/ """"""""""" \ /
/ ::::::::::::: \ =D-'
(_________________)
======GAME OVER=======
'''
)
def show_team():
print('''
=====TEAM COMPOSITION=====
Programmer:Rita
Designer:Rita
Director: Rita
=====TEAM COMPOSITION=====
'''
)
def show_instruction():
print('''
=====INSTRUCTION=====
1.Please set the max number of random
2.Please set the number you want machine to guess
3.Wait if the machine can guess it
=====INSTRUCTION=====
'''
)
def menu():
print('''
=====游戏菜单=====
1. 游戏说明
2. 开始游戏
3. 退出游戏
4. 制作团队
=====游戏菜单=====
'''
)
def guess_game():
n = int(input('请输入一个大于0的整数,作为神秘整数的上界,回车结束。'))
number = int(input('请输入你设定的整数,回车结束。'))
print('\n\n')
max_times = math.ceil(math.log(n, 2))
guess_times = 0
s=1
e=n
while guess_times <= max_times:
guess = random.randint(s, e)
print('机器猜的数字是',guess)
guess_times += 1
print('一共可以猜', max_times, '次,机器已经猜了', guess_times, '次。')
if guess == number:
lose()#机器猜中
print('神秘数字是:', guess,',机器比标准次数少', max_times-guess_times, '次')
break
elif guess > number:
e=guess-1
print('机器猜大了\n\n')
else:
s=guess+1
print('机器猜小了\n\n')
else:
win()#机器没猜出来
# 主函数
def main():
while True:
menu()
choice = int(input('请输入你的选择'))
if choice == 1:
show_instruction()
elif choice == 2:
welcome()
guess_game()
elif choice == 3:
game_over()
break
else:
show_team()
#主程序
if __name__ == '__main__':
main()