练习 1:求n个随机整数均值的平方根,整数范围在m与k之间。


In [ ]:
n = int(input('请输入你想取的整数的个数'))
m = int(input('请输入取整范围的下限'))
k = int(input('请输入取整范围的上限'))

import random,math

def get_num():
    number = random.randint(m,k)
    
    return number

i = 0
total = 0
while i < n:
    total = total + get_num()
    i = i + 1
    print(get_num())

average = total/n
math.sqrt(average)

练习 2:共n个随机整数,整数范围在m与k之间,求西格玛log(随机整数)及西格玛1/log(随机整数)


In [ ]:
n = int(input('请输入随机整数个数'))
m = int(input('请输入取整范围的下限,不为1'))
k = int(input('请输入取整范围的上限'))

import random,math

def get_num():
    number = random.randint(m,k)
    
    return number

i = 0
total = 0
while i < n:
    total = total + math.log(get_num())
    i = i + 1

j = 0
total_n = 0    
while j < n:
    total_n = total_n + 1/math.log(get_num())
    j = j + 1
    
print(total)
print(total_n)

练习 3:写函数,求s=a+aa+aaa+aaaa+aa...a的值,其中a是[1,9]之间的随机整数。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入。


In [ ]:
import math,random
n = int(input('请输入相加数字的个数,回车结束'))

i = 0
total = 0
b = random.randint(1,9) 
a = b
c = b
print('a=',a)

while i < n:
    total= total + a
    i = i + 1
    a = a + c*10**i

print('a + aa + aaa + aaaa....+a...a的值是:',total)

挑战性练习:仿照task5,将猜数游戏改成由用户随便选择一个整数,让计算机来猜测的猜数游戏,要求和task5中人猜测的方法类似,但是人机角色对换,由人来判断猜测是大、小还是相等,请写出完整的猜数游戏。


In [ ]:
import math,random

def win():
    print('Congratulations!! You win')
    
def lose():
    print('I am sorry.~~ You lose. You can try again')
    
def over():
    print('Game over!')
    
def show_team():
    print('Cindy.Zhang')
    
def show_instruction():
    print('请玩家任意输入一个数字,由计算机来猜测。每猜测一次,玩家来判断数字大或小或等于输入数字,直到猜测次数用尽(猜测次数不定)。')

def menu():
    print('''=====游戏菜单=====
                1. 游戏说明
                2. 开始游戏
                3. 退出游戏
                4. 制作团队
             =====游戏菜单=====''')
    
def inner_game1():
    while judge == '大了':
        print('计算机继续猜测')
        guess = random.randint(0,guess)
    print(guess)         

def inner_game2():
    while judge == '小了':
        print('计算机继续猜测')
        guess = random.randint(guess,n)
    print(guess)
        
def guess_game():
    n = int(input('请输入一个大于零的整数作为神秘数字的上界,以回车结束。'))
    number = int(input('请输入一个整数,位于零到上界内,作为神秘数字,回车结束。'))
    max_times = math.ceil(math.log(n,2))
    guess_times = 0
    
    while guess_times <= max_times:
        guess = random.randint(0,n)
        guess_times += 1
        print('一共可以猜', max_times, '次')
        print('计算机已经猜了', guess_times, '次')
        print(guess)
        judge = input('请玩家输入判断,如:大了、小了、正确')
        
        if judge == '大了':
            guess = random.randint(0,guess)
            print(guess)
            judge = input('请玩家输入判断,如:大了、小了、正确')
        
        elif judge == '小了':
            guess = random.randint(guess,n)
            print(guess)
            judge = input('请玩家输入判断,如:大了、小了、正确')
        
        if judge == '正确':
            win()
            print('神秘数字是:', guess)
            print('你比标准次数少', max_times-guess_times, '次')
            break
      
    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()