python基础实战5-python基本结构

1 if语句

  • if语句是用来进行判断的,其使用格式如下

if 要判断的条件:

        条件成立时,要做的事情

案例一:

age = 30
print("------if判断开始------")
if age >= 18:
    print("我成年了")
print("------if判断结束------")

运行结果:

 

案例二:

age = 16
print("------if判断开始-------")
if age >= 18:
    print("我成年了")
print("------if判断结束-------")

运行结果:

总结:以上两个案例仅仅是age变量的值不一样,导致结果却不同;能够看得出来if判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。

注意:代码的缩进为一个tab键,或者4个空格

           在python开发中,Tab和空格不要混用

 2 if-else语句

格式如下:

if 要判断的条件:

        条件成立,要做的事情

        ......

else:

        条件不成立,要做的事情

        ......

练习:

  1. 输入用户年龄
  2. 判断是否满18岁(>=)
  3. 如果满18岁,提示你以成年
  4. 如果未满18岁,提示未成年
# 输入用户年龄
age = int(input("请输入年龄:"))  
# 判断是否满18岁(>=)
if age >= 18:
    # 如果满18岁,提示你以成年
    print("你以成年")
else:
    # 如果未满18岁,提示未成年
    print("未成年")
#这句代码无论条件是否成立都会执行
print("这句代码什么时候执行?")

输出结果:

 

 注意:在python中通过控制台输入的内容类型是是字符串类型,在python中要进行大于等于的比较必须是相同的数据类型

3 if嵌套

if 条件 1:

        条件 1 满足执行的代码

        ......

        if 条件 1 基础上的条件 2:

                条件 2 满足时,执行的代码

                ......

        # 条件 2 不满足的处理

        else:

                条件 2 不满足时,执行的代码

# 条件 1 不满足的处理

else:

        条件 1 不满足时,执行的代码

        ......

if的嵌套 演练 -- 火车站安检

需求:

  1. 定义布尔型变量has_ticket表示是否有车票
  2. 定义整型变量knife_length表示刀的长度,单位:厘米
  3. 首先检查是否有车票,如果有,才允许进行安检
  4. 安检时,需要检查刀的长度,判断是否超过20厘米
    • 如果超过20厘米,提示刀的长度,不允许上车
    • 如果不超过20厘米,安检通过
  5. 如果没有车票,不允许进门
# 定义布尔型变量has_ticket表示是否有车票
has_ticket = True

# 定义整型变量knife_length表示刀的长度,单位:厘米
knife_length = 30

# 首先检查是否有车票,如果有,才允许进行安检
if has_ticket:
    print("车票检查通过,准备开始安检")

    # 安检时,需要检查刀的长度,判断是否超过20厘米
    if knife_length > 20:
    # 如果超过20厘米,提示刀的长度,不允许上车
        print("你的刀太长,有%d厘米长" %knife_length)
        print("不允许上车")
    # 如果不超过20厘米,安检通过
    else:
        print("安检通过,欢迎乘车")
# 如果没有车票,不允许进门
else:
    print("请先买票,谢谢配合!!!")

4 elif的使用格式

当条件A满足时做事情1;当条件A不满足、条件B满足时做事情2;当条件B不满足、条件C满足时做事情3,那么该怎么实现呢? 通过使用elif

if  xxx1:

        事情1

elif xxx2:

        事情2

elif xxx3:

        事情3

说明:

  • 当xxx1满足时,执行事情1,然后整个if结束
  • 当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束
  • 当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束
choice = input('请输入你喜欢的游戏:')

if choice == '和平精英':
    print('特种兵加油!')
elif choice == '王者荣耀':
    print('敌军还有五秒到达战场')
elif choice == '英雄联盟':
    print('英雄们加油啊!')

 也可以和else一起使用:

if 性别为男性:

        输出男性的体重

        ...

elif 性别为女性:

        输出女性的体重

else:

        第三种性别的体重

        ...

说明:

  • 当”性别为男性“满足时,执行”输出男性的体重“的相关代码
  • 当”性别为男性“不满足时,如果”性别为女性“满足,则执行”输出女性的体重“的相关代码
  • 当”性别为男性“不满足,”性别为女性“也不满足,那么就默认执行else后面的代码,即”第三种性别的体重“相关代码

elif必须和if一起使用,否则出错

else一般用在最后,即所有条件都不满足时使用

5 循环语句

5.1 while语法

while 判断条件:

        代码块

while循环的语法结构与if语句的结构区别:

  • if语句只会执行一次判断条件,条件成立以后,只会执行一次代码块
  • while语句,会先执行一次判断条件,如果条件成立,会执行一次代码块,代码块执行完成以后,会再次判断条件语句,如果还成立,将会再执行代码语句...直到最后条件不成立,

例如:输出十遍hello world

i = 1
while i <= 10:
    print('hello world')
    i += 1 #一定要记得让 i += 1,否则会造成死循环

注意:
    1.初始化变量i
    2.循环条件的制定
    3.自增或者自减
例如:打印1-10的累加和

i = 1 #初始化变量i
total = 0 #用于求和
while i <= 10: # 条件在1-10以内
    total += i # 累加求和
    i += 1 # 一定要记得让 i += 1,否则会造成死循环
    print(total)

例如:用户登陆有三次机会

i = 3
while i >= 1:
    username = input('请输入用户名:')
    password = input('请输入密码:')

    #用户名是admin且密码是123456则身份验证成功否则验证失败
    if username == 'admin' and password == '123456':
        print('身份验证成功!')
        break
    else:
        print('身份验证失败!')
        i -= 1
        print(f'还有剩余{i}次机会')

运行结果:

5.2 for循环与基础语法

5.1.1 for循环的格式

for 临时变量 in 序列:

        循环满足条件时执行代码

 说明:

  1. for 、in、冒号 - 固定写法
  2. 变量  -自定义变量名,要求和单独定义变量的时候一样
  3. 序列  -容器型数据类型的数据,比如:字符串、列表、元组、集合...
    1. 数字和布尔都不属于序列
  4. 循环体 -需要重复执行的代码:结构上必须和for保持一个缩进
  • 遍历字符串:

for s in 'hello':
    print(s)

输出结果:

  • 换一种字符串的打印
str1 = 'abc'
for x in str1:
    print('今天你学习了吗?')

 输出结果:

 5.1.2 range()函数

range()函数通常是结合for使用的,单独使用没有什么意义

for x in range(5):
    print(x)

输出结果:

 如上图range(5)产生的序列是0-4之间的数字。如果换成range(10)那么打印的是0-9之间的数字。

其实range的用法非常灵活,如下:

  • range(101):可以用来产生0到100范围的整数,需要注意的是取不到101
  • range(1,101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间
  • range(1,101,2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值
  • range(100,0,-2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值

实现1~100之间的偶数求和

total = 0
for x in range(2,101,2):
    total += x
print(total)

5.1.3 break和continue

break:表示跳出整个循环结构

continue:表示跳过本次循环后面的语句不执行,继续下一次循环

i = 0
while i <= 12:
    i += 1
    if i == 7 or i == 11:
        break
    print(i)

运行结果:

从上运行的结果,可以发现在7的时候就结束了循环,即使i == 11 也没有任何作用,因为在7的时候就结束了。

将break换成continue

i = 0
while i <= 12:
    i += 1
    if i == 7 or i == 11:
        continue
    print(i)

运行结果:

continue是在7和11的时候跳过没有打印数字。

注意:

  1. 在python中,break和continue只能用于循环语句中。
  2. break和continue在嵌套循环中使用时,只对最内层循环有效 

5.1.4 while和for与else的使用

在python中,循环语句还可以和else语句联合使用。

语法结构:

while 判断条件:

        条件成立时,循环体代码

else:

        循环后,不符合循环条件执行的代码

或者

for x in 序列:

      循环体代码

else:

        循环完所有序列,执行的代码

从上述结构中,我们可以看出,在非死循环中,正常情况下else里的语句都是会被执行的。那这个else语句到底有什么作用呢?一般情况下,循环语句和else共同出现时,在循环语句里都会配合break语句来使用。

i = 0
while i <= 12:
    if i == 7:
        break
    i += 1
    print(i)
else:
    print('循环条件不成立时执行的代码')

从上述代码中,执行后发现else代码没有被执行,因为只要循环没有顺利完成,中间被break中断了则else里面的内容就不会执行。

5.1.5 综合案例

掷骰子游戏

  1. 欢迎进入皇家游戏长
  2. 输入用户名,默认用户没有币
  3. 提示用户充值买币(100块钱30币,充值必须是 100的倍数,充值不成功可以再次充值)
  4. 玩一局游戏扣除2个币,猜大【两个骰子相加和大于6】、小【两个骰子相加和小于6】(系统用1-6之间的随机数模拟骰子产生值)
  5. 只要猜对了奖励1个币,可以继续玩(想不想继续玩,也可以没有金币自动退出)

代码参考:

import random
print('*' * 30)
print('欢迎进入澳门皇家娱乐城')
print('*'*30)

username = input('输入用户名:')
coins = 0

answer = input('是否加入"猜猜乐"游戏(yes/no)')

if answer == 'yes':
    #同意进入游戏
    while  True:
        num = int(input('%s!当前您的金币为%d! 请充值(100块钱30币,充值必须是100的倍数):' %(username,coins)))
        if num % 100 == 0 and num > 0:
            #充值成功
            coins += (num / 100) * 30

        else:
            print('充值失败!')
        ans = input('是否继续充值(yes/no)?')
        if ans == 'no': #not 5>3
            break
        print('当前金币数是:',coins)

        #开始玩
        print('玩一局扣除5个金币,进入游戏中……')

        #计数器
        count = 0

        #可以玩多局
        while True:
            #模拟两个骰子 使用随机数
            ran1 = random.randint(1,6)
            ran2 = random.randint(1,6)
            print(ran1)
            print(ran2)
            #扣金币
            coins -= 5

            #押大 押小 买定离手
            print('押大?押小?买定离手!')
            guess = input('输入大小:')

            #判断输赢 6 ,如果赢返3金币,玩5局送10个
            if(ran1 + ran2) > 6 and guess == '大' or (ran1 + ran2) <= 6 and guess == '小':
                #金币累加
                coins += 3
                print('恭喜!你赢了!当前金币数是:',coins)
            else:
                print('很遗憾!回去多加练习!当前金币数是:',coins)

            #计数的累加
            count += 1

            #送金币
            if count % 5 == 0:
                print('满五局送金币15个!!!')
                coins += 15

            #是否继续
            flag = input('是否再玩一局游戏(yes/no)?')
            if flag == 'no' or coins < 5:
                print('主动离开或者金币不足!')
                break
else:
    print('欢迎下次再来!!!')

5.1.6 猜数字游戏

产生随机数 random.randint(start,end)

可以猜多次 直到猜对为止

如果猜错了适当给出提示,猜大了还是猜小了

1.统计猜了几次

2.如果1次就中,赶快取买彩票把,运气好到爆了

   2-5,猜对了,运气还可以

   6次以上,猜对了,运气一般

import random

ran = random.randint(1,50)
count = 0

#循环猜多次
while True:
    guess = int(input('猜一个1-50之间的数字:'))
    # count改变
    count += 1

    #猜对就结束
    if guess == ran:
        if count == 1:
            print('赶快取买彩票把,运气好到爆了')
        elif 2 < count < 5:
            print('猜对了,运气还可以')
        elif count >= 6:
            print('猜对了,运气一般')
        break
    elif guess > ran:
        print('猜大了,再小一点!')
    else:
        print('猜小了,再大一点')

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

再快一步`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值