10. 判断(if-elif-else)和循环(Loop)的综合练习

综合练习

# 0.前置知识

'''

a_list = [1,2,3]

print(sum(a_list))

'''

'''

import random     #python内置的库,用于生成随机数

point1 = random.randrange(1,7)

point2 = random.randrange(1,7)

point3 = random.randrange(1,7)

print(point1,point2,point3)

'''

# 1.写一个用户猜大小的游戏,并根据输入的数据输出相应的结果

答案:个人版

'''

Demo 10 写一个猜大小的游戏import random

def shake_dce():

    print("<<<<>>>>")

    number = input("Big or Small:")

    list = []

    for dce in range(1,4):

        dce = random.randrange(1,7)

        list.append(dce)

        list_all = list[0]+list[1]+list[2] #list下标从0开始

        if (11 <= list_all <= 18) and number=="Small":

            print("You Lose!")

        elif (11 <= list_all <= 18) and number=="Big":

            print("You Win!")

        elif (3<=list_all<=10) and number=="Small":

            print("You Win!")

        elif (3<=list_all<=10) and number=="Big":

            print("You Lose")

        else:

            print("Wrong Tings")

            print("<<<<>>>>")

            print("The points are " +str(list))

shake_dce()

'''

答案:参考答案版

import random

def roll_dice(numbers = 3 , points = None): #numbers:筛子数量 points:点数列表

    print("<<< ROLL THE DICE ! >>>")#告知用户摇筛子

    if points is None :#参数中未指定points,为points创建一个空列表

    points = []

    while numbers > 0:

        point = random.randrange(1,7)

        points.append(point)

        numbers = numbers - 1#摇动筛子三次,每摇动一次数量-1,直到小于0

    return points#返回结果列表

def roll_result(total):#创建参数,必要的参数是筛子的总点数

    isBig = 11 <= total <= 18 #定义”大“的标准

    isSmall = 3 <= total <=10#定义”小“的标准

    if isBig:

        return 'Big'

    elif isSmall:

        return 'Small' #在不同的条件下返回不同的结果

def start_game():#建立函数

    print("<<< GAME STARTS !>>>")#告知用户游戏开始

    choices = ['Big','Small']#规定正确的输入

    your_choice = input("Big or Small :")#用户输入的字符放在your_choice中

    if your_choice in choices:#如果符合规定就继续向下执行

        points = roll_dice()##调用roll_dice函数,返回列命名为points

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

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


1.课后练习题1

#2.

# Demo 11 加上功能:下注金额和赔率

#初始金额 1000元

#金额为 0 时游戏结束

#押对了会获得相应的金额,押错了会输掉相应的金额

import random

def roll_dice(numbers =3,points =None):#numbers:筛子数量 points:点数列表

    print("<<<ROLL THE DICE! >>>")#告知用户摇筛子

    if pointsis None:#参数中未指定points.为points创建一个空列表

        points = []

    while numbers >0:

        point = random.randrange(1,7)

        points.append(point)

        numbers = numbers -1  #摇动三次筛子,每摇动一次数量-1.直到小于等于0

        return points#返回结果列表

def roll_result(total):#创建参数,必要的参数是筛子的总点数

    isBig =11 <= total <=18 #定义‘大’的标准

    isSmall =3 <= total <=10 #定义‘小’的标准

    if isBig:

        return 'Big'

    elif isSmall:

        return 'Small' #在不同的条件下返回不同的结果

def start_game():#创建函数

    your_money =1000 #本金1000元

while your_money >0:

        print('<<<<< GAME STARTS !>>>>>')#告知用户游戏开始

        choices = ['Big','Small']#规定正确的输入

        your_choice =input("Big or Small :")#用户输入的字符串放在 your_choice中

        your_bet_money =int(input('How money you wanna bet? -'))#输入想要进行打赌的金额

        if your_bet_money <=1000:#参与打赌的钱要小于本金

            if your_choice in choices:#如果符合规定继续向下执行

                points = roll_dice()###调用roll_Dice函数,返回的列命名为points

                total =sum(points)#点数求和

                youWin =your_choice = roll_result(total)#所选结果和计算机生成结果相同

                if youWin:#成立告知胜利

                    print('The points are',points,'You win !')

                    money_now = (your_bet_money*2)+(your_money-your_bet_money)

                    print(' you gained ' +str(your_bet_money)+','+' you have '+str(money_now) +' know ' )#获得打赌赢得的钱

                    your_money = money_now

                else:#不成立告知失败

                    print('The points are',points,'You lose !')

                    money_now = ((-1)*your_bet_money)+ (your_money - your_bet_money)

                    print(' you lost ' +str(your_bet_money) +',' +' you have ' +str(money_now) +' know ')# 失去打赌输得的钱

                    your_money = money_now

            else:#不符合规定则提示不符合规定

                    print('Invalid Words')

                    #start_game()

        else:#大于本金会提示钱不够

            print('Invalid Money')

else:#退出游戏

    print("GAME OVER")

start_game()


2.课后练习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]

CN_aLL = CN_mobile + CN_union + CN_telecom

#print(CN_aLL)

for i in CN_aLL:

    string =str(input("Enter Your Number :"))# 告知用户输入数字

    first_three =int(string[0:3])#字符串前3位,要转换成int类型

    first_four =int(string[0:4])#字符串前4位,要转换成int类型

    if(len(string) ==11):#print("valid length")

        if first_threein CN_mobileor first_fourin CN_mobile:#或者条件 用 or连接

                print("China Moile")

                print("We're sending verification code via test to your phone:"+ string)

                break #找到后用break跳出,不然会循环多次

        elif first_threein CN_unionor first_fourin CN_mobile:#同上

                print("China Telecom")

                print("We're sending verification code via test to your phone:" + string)

                break

        elif first_threein CN_telecomor first_fourin CN_telecom:#同上上

                print("China Telecom")

                print("We're sending verification code via test to your phone:" + string)

                break

        else:

                print("Not such operator")

    else:

        print("Invalid length,your number should be in 11 digits")


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容