作业
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()

浙公网安备 33010602011771号