In [1]:
import math,random

def fuc(i,a,b):
    j=0
    total=0
    areverage=0
    while j<i:
        j=j+1
        number=random.randint(a,b)
        print(number)
        total=total+number
    average=total/i
    print(average)
    print(math.sqrt(average))
    
m=int(input('请输入随机整数的最小值'))
k=int(input('请输入随机整数的最大值'))
n=int(input('请输入随机整数的个数'))
fuc(n,m,k)


请输入随机整数的最小值3
请输入随机整数的最大值10
请输入随机整数的个数3
3
5
9
5.666666666666667
2.3804761428476167

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


In [13]:
import random,math
def fuc(i,a,b):
    j=0
    total_1=0
    total_2=0
    while j<i:
        j=j+1
        number=random.randint(a,b)
        print(number)
        total_1=total_1+math.ceil(math.log(number, 2))
        total_2=total_2+1/math.ceil(math.log(number, 2))
    print('西格玛log(随机整数为):',total_1)
    print('西格玛1/log(随机整数)为:',total_2)
    
m=int(input('请输入随机整数的最小值'))
k=int(input('请输入随机整数的最大值'))
n=int(input('请输入随机整数的个数'))
fuc(n,m,k)


请输入随机整数的最小值3
请输入随机整数的最大值12
请输入随机整数的个数4
5
8
5
6
西格玛log(随机整数为): 12
西格玛1/log(随机整数)为: 1.3333333333333333

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


In [15]:
import math,random

def fuc(m):
    a=random.randint(1,9)
    print(a)
    i=1
    total=a
    temp=a
    while i<m:
        temp=temp+a*(10**i)
        total=total+temp
        i=i+1
    print('最终值为:',total)

n=int(input())

fuc(n)


3
1
最终值为: 123

挑战性练习:将猜数游戏改成由用户随便选择一个整数,让计算机来猜测的猜数游戏。


In [1]:
import random, math


def win():
    print('yeah! you won!')
    
def lost():
    print('sorry! you lost! try again')

def game_over():
    print('bye bye')

def show_team():
    print('liupengyuan and his students!')

def show_instruction():
    print('随便输入一个整数,让计算机在有限的次数内猜测你所输入的这个数')

def menu():
    print('''
             =====游戏菜单=====
                1. 游戏说明
                2. 开始游戏
                3. 退出游戏
                4. 制作团队
             =====游戏菜单=====
         ''')
             
def guess_game():
    m=int(input('请输入一个数:'))
    n = int(input('请输入一个大于0的整数,作为神秘整数的上界,回车结束。'))
    max_times = math.ceil(math.log(m, 2))#这句话的意思是为了让用户可以尝试的次数等于输入数的以2为底对数
    guess_times = 0
    
    while guess_times < max_times:
        number = random.randint(1, n)
        guess_times += 1
        print('计算机已经猜了', guess_times, '次')
        
        if number == m:
            lost()
            print('计算机给出的数是:', number)
            print('计算机比标准次数少', max_times-guess_times, '次')
            break
        elif number > m:
            print('计算机给出的数是:', number)
            print('计算机猜大了')
        else:
            print('计算机给出的数是:', number)
            print('计算机猜小了')
            
    else:
        print('你输入的数是:', m)
        win()

def main():
    while True:#while后面加ture,是为了让计算机一直执行main程序,一直到用户想要结束为止
        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()


             =====游戏菜单=====
                1. 游戏说明
                2. 开始游戏
                3. 退出游戏
                4. 制作团队
             =====游戏菜单=====
         
请输入你的选择2
请输入一个数:12
请输入一个大于0的整数,作为神秘整数的上界,回车结束。24
计算机已经猜了 1 次
计算机给出的数是: 7
计算机猜小了
计算机已经猜了 2 次
计算机给出的数是: 2
计算机猜小了
计算机已经猜了 3 次
计算机给出的数是: 9
计算机猜小了
计算机已经猜了 4 次
计算机给出的数是: 23
计算机猜大了
你输入的数是: 12
yeah! you won!

             =====游戏菜单=====
                1. 游戏说明
                2. 开始游戏
                3. 退出游戏
                4. 制作团队
             =====游戏菜单=====
         
请输入你的选择3
bye bye