作业

1、设计一个重量转换器,输出'g'为单位的数字后返回换算成'KG'的结果。

def g_to_kg(g):
    return str(g/1000) + 'KG'
print(g_to_kg(100)) #0.1KG

2、设计一个求直角三角形斜边长的函数(两条直边为参数,求最长边)。

def Pythagorean_theorem(a, b):
    s = 'The right triangle thire side\'s length is:'
    return s + str((a**2 + b**2)**(1/2))
print(Pythagorean_theorem(3,4)) #The right triangle thire side's length is:5.0

3、设计一个函数,在桌面的文件夹上创建10个文本,以数字给他们命名。

def text_create(num):
    desktop_path = '\\Users\\Python\\Desktop\\'
    for i in range(1,num+1):
        full_path = desktop_path + str(i) + '.txt'
        file = open(full_path,'w')
        file.close()
    print('Done!')

text_create(10)

4、设计一个复利计算函数invest(),它包含三个参数:amount(资金),rate(利率),time(投资时间),输入每数后返回每一年资金的总额。

def invest(amount, rate, time):
    sum = 0
    for i in range(1,time+1):
        sum = amount *( (1 + rate)**i)
        print('year %d: $%s' %(i, sum))
invest(100,0.05,8)
/*

year 1: $105.0
year 2: $110.25
year 3: $115.76250000000002
year 4: $121.55062500000003
year 5: $127.62815625000003
year 6: $134.00956406250003
year 7: $140.71004226562505
year 8: $147.7455443789063

*/

 5、打印1-100的偶数(even)(奇数odd)

def print_even(num):
    for i in range(1,num+1):
        if i % 2 == 0:
            print(i)

print_even(100)

 6、计设一个摇骰子

  1)摇三个骰子

  2)三个骰子1<=总值<=10为小,11<=总值<=18为大。

/*分析:
  1、开始游戏函数start_game()
  2、摇骰子函数roll_dice(number=3,points=None),返回三个点数的列表
  3、转换大小函数roll_result(total),返回总点数的大小值
*/

import random

#摇骰子函数
def roll_result(total):
    isBig = 11 <= total <= 18
    isSmall = 3 <= total <= 10
    if isBig:
        return 'Big'
    elif isSmall:
        return 'Small'

#摇色子函数
def roll_dice(numbers=3, points=None):
    print('<<<<< ROLL THE DICE! >>>>>')
    if points is None:
        points = []
    while numbers > 0:
        point = random.randrange(1,7)
        points.append(point)
        numbers = numbers -1
    return points

#开始游戏函数
def start_game():
    print('<<<<< GAME STARTS! >>>>>')
    choices = ['Big', 'Small']
    your_choice = input('Big or Small:')
    if your_choice in choices:
        points = roll_dice()
        total = sum(points)
        youWin = your_choice == roll_result(total)
        if youWin:
            print('The points are',points,'You Win!')
        else:
            print('The points are', points, 'You Lose!')
    else:
        print('Invalid Words')
        start_game()
start_game()

7、在6的基础上升级:增加下注金额和赔率,具体如下:

  1)初始金额为1000元

  2)金额为0时结束游戏

      3)默认赔率为1(1:1)

import random

#判断总点数的大小
def roll_result(total):
    isBig = 11 <= total <= 18
    isSmall = 3 <= total <= 10
    if isBig:
        return 'Big'
    elif isSmall:
        return 'Small'

#摇色子函数
def roll_dice(numbers=3, points=None):
    print('<<<<< ROLL THE DICE! >>>>>')
    if points is None:
        points = []
    while numbers > 0:
        point = random.randrange(1,7)
        points.append(point)
        numbers = numbers -1
    return points

def start_game():
    print('<<<<< GAME STARTS! >>>>>')
    choices = ['Big', 'Small']
    count = 1000

    while count > 0:
        your_choice = input('Big or Small:')
        if your_choice in choices:
            flag = True
            while flag: #保证输入数字在1-count之间
                your_num = input('How much you wanna bet? - ')
                your_num = int(your_num)
                if your_num in range(1,count+1):
                    flag = False
                else:
                    print("input number is not [1-%d]" %count)

            points = roll_dice()
            total = sum(points)
            youWin = your_choice == roll_result(total)

            if youWin:
                count = count + your_num
                print('The points are',points,'You Win!')
                print('You gained %s,you have %s' %(your_num,count))
            else:
                count = count - your_num
                print('The points are', points, 'You Lose!')
                print('You lost %s,you have %s' %(your_num, count))
        else:
            print('Invalid Words')
    else:
        print("Game over!")
start_game()

 8、验证手机号码

  1)长度为11位

  2)是移动、联通、电信的号码

  CN_mobile = [134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705]

  CN_union = [130,131,132,155,156,185,186,145,176,1709]

  CN_telecom = [133,153,180,181,189,177,1700]

  3)全为数字

  

方法一:
def isNumber(enter_number):
    nums = ['0','1','2','3','4','5','6','7','8','9']
    len_number = len(enter_number)
    for i in range(len_number):
        if enter_number[i] not in nums:
            return False
    return True

def telphone_check():
    CN_mobile = [134, 135, 136, 137, 138, 139, 150, 151, 152, 157, 158, 159, 182, 183, 184, 187, 188, 147, 178, 1705]
    CN_union = [130, 131, 132, 155, 156, 185, 186, 145, 176, 1709]
    CN_telecom = [133, 153, 180, 181, 189, 177, 1700]
    enter_number = input('Enter your number:')
    len_number = len(enter_number)
    if len_number == 11 and isNumber(enter_number):  
        left_three_numbers = int(enter_number[:3])
        left_four_numbers = int(enter_number[:4])
        if left_three_numbers in CN_mobile or left_four_numbers in CN_mobile:
            print('Operater:CN_mobile')
            print('We\'re sending verification code via text to your phone: %s' % enter_number)
        elif left_three_numbers in CN_union or left_four_numbers in CN_union:
            print("Operater:CN_union")
            print('We\'re sending verification code via text to your phone: %s' % enter_number)
        elif left_three_numbers in CN_telecom or left_four_numbers in CN_telecom:
            print('Operater:CN_telecom')
            print('We\'re sending verification code via text to your phone: %s' %enter_number)
        else:
            print('No such a operator')
            telphone_check()
    else:
        print('Invalid length,your number should be in 11 digits')
        telphone_check()

telphone_check()
方法二:
def telphone_check():
    CN_mobile = [134, 135, 136, 137, 138, 139, 150, 151, 152, 157, 158, 159, 182, 183, 184, 187, 188, 147, 178, 1705]
    CN_union = [130, 131, 132, 155, 156, 185, 186, 145, 176, 1709]
    CN_telecom = [133, 153, 180, 181, 189, 177, 1700]
    enter_number = input('Enter your number:')
    len_number = len(enter_number)
    if len_number == 11 and enter_number.isdigit():
        left_three_numbers = int(enter_number[:3])
        left_four_numbers = int(enter_number[:4])
        if left_three_numbers in CN_mobile or left_four_numbers in CN_mobile:
            print('Operater:CN_mobile')
            print('We\'re sending verification code via text to your phone: %s' % enter_number)
        elif left_three_numbers in CN_union or left_four_numbers in CN_union:
            print("Operater:CN_union")
            print('We\'re sending verification code via text to your phone: %s' % enter_number)
        elif left_three_numbers in CN_telecom or left_four_numbers in CN_telecom:
            print('Operater:CN_telecom')
            print('We\'re sending verification code via text to your phone: %s' %enter_number)
        else:
            print('No such a operator')
            telphone_check()
    else:
        print('Invalid length,your number should be in 11 digits')
        telphone_check()

telphone_check()

 

  

 

posted @ 2017-03-29 00:16  起航追梦人  阅读(393)  评论(0)    收藏  举报