练习 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()


请输入一个整数下限:3
请输入一个整数上限:7
随机整数的个数是:2
随机数是: 4
随机数是: 5
Out[2]:
2.23606797749979

练习 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())


随机整数的个数是:2
请输入一个整数下限:1
请输入一个整数上限:100

执行1的随机整数是: 18
执行1的随机整数是: 46
执行1的结果是: 4.810124939475361

执行2的随机整数是: 49
执行2的随机整数是: 49
执行2的结果是: 1.6962756445012634

练习 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())


需要相加的个数是:4
随机整数a是: 3
结果是: 3702

挑战性练习:仿照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()


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

             游戏说明
玩家选择一个任意整数,计算机来猜测该数。
若计算机在规定次数内猜中该数,则计算机获胜。
若规定次数内没有猜中,则玩家获胜。

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

        ***声明***
    本游戏由PXS小机智开发

             =====游戏菜单=====
                1. 游戏说明
                2. 开始游戏
                3. 退出游戏
                4. 制作团队
             =====游戏菜单=====
请输入你的选择2
请输入一个大于0的整数,作为神秘整数的上界,回车结束。9
规定猜测次数是: 3 次

我猜这个数是: 1
我猜对了吗?(请输入“对”或“不对”)不对
我猜大了还是小了?(请输入“大”或“小”)小

我猜这个数是: 2
我已经猜了 2 次

我猜对了吗?(请输入“对”或“不对”)不对
我猜大了还是小了?(请输入“大”或“小”)小

我猜这个数是: 9
我已经猜了 3 次

***猜测已达规定次数*** 
                                我猜对了吗?(请输入“对”或“不对”)不对
你的神秘数字是:8

原来是 8 啊!

           ======YOU WIN=======
        
    
                ."".    ."",
                |  |   /  /
                |  |  /  /
                |  | /  /
                |  |/  ;-._ 
                }  ` _/  / ;
                |  /` ) /  /
                | /  /_/\_/                |/  /      |
                (  ' \ '-  |
                 \    `.  /
                  |      |
                  |      |
          
           ======YOU WIN=======
        

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

           ======GAME OVER=======
        
             _________ 
            / ======= \ 
           / __________\ 
          | ___________ | 
          | | -       | | 
          | |         | | 
          | |_________| |________________ 
          \=____________/                ) 
          / """"""""""" \               / 
         / ::::::::::::: \          =D-' 
        (_________________) 

       
          ======GAME OVER=======
        

In [ ]: