手把手教你从零开始学python 第三章—条件语句、字符串、切片

本文探讨了Python中的条件语句,如if-else和三元运算,以及字符串处理技巧,包括id()和is()用法。通过实例讲解了猜拳游戏和猜数字游戏,深入剖析了字符串截取、切片和步长的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

🔥一、条件语句

⛳️ if 语句举例

⛳️ 三元运算

⛳️while 条件语句

📕小例题 猜拳游戏

⛳️补充

📕例题猜数字游戏(较难)

🔥二、字符串

⛳️id函数和is用法

🔥三、截取和切片

⛳️字符串的截取

⛳️字符串的切片

⛳️切片的参数 步长step


🔥一、条件语句

⛳️ if 语句举例

a = 1
b = 2

if a > b:
    print('a比b大')
else:
    print('b比a大')

⛳️ 三元运算

a = 2
b = 4
c = a if a>b else b
print(c)
# 这个三元运算的逻辑就是  如果a>b条件成立 执行a  条件不成立 执行b

⛳️while 条件语句

# 举例 计算1~100的值
i = 0
num = 0
while i<100:
    i = i + 1
    num = num + i
print(num)

📕小例题 猜拳游戏

import random

a = 1
n = 0
m = 0
while a<=3:

    jiqi = random.randint(0,2)

    ren = int(input('请输入 石头(0) 剪刀(1) 布(2)\n'))

    if (jiqi == 0 and ren == 2) or (jiqi == 1 and ren == 0) or (jiqi == 2 and ren == 1):
        print('恭喜你赢了')
        n += 1
        print('你一共赢了{}把'.format(n))
    elif (jiqi == 2 and ren == 0) or (jiqi == 0 and ren == 1) or (jiqi == 1 and ren == 2):
        print('机器赢了')
        m += 1
        print('机器一共赢了{}把'.format(m))
    else:
        print('本轮平局')
    a += 1


if m > n:
    print('机器最终获胜')
elif n > m:
    print('你最终获胜')
else:
    print('最终平局')

⛳️补充

for i in range(n):
    循环


还有一种 
for i in range(n):
    循环
else:
    如果上面循环完 就执行else

如果 for中有Break 就直接弹出 不执行else 

📕例题猜数字游戏(较难)

import random

money = 0

if money < 5:
    print('钱不够请充值:')
    while True:
        money = int(input('请输入你想要充值的数额(请输入5的倍数):'))
        if money % 5 == 0:
            print('充值成功,拥有金钱数为:{}\n'.format(money))
            go = input('是否开始游戏(yes/no):')
            while money >= 5 and go == 'yes':
                print('成功消费5元')
                print('-----------------猜数字游戏开始------------------')
                jiqi = random.randint(1, 6)
                ren = int(input('请输入你猜的数字是多少(1-6):'))
                if jiqi == ren:
                    print('恭喜你猜中了~~~~~~')
                    money -= 5
                    print('剩余金钱数为:{}'.format(money))
                else:
                    print('很遗憾猜错了!')
                    money -= 5
                    print('剩余金钱数为:{}'.format(money))
                go = input('是否继续游戏(yes/no):')

        else:
            print('充值失败,请输入5的倍数')

🔥二、字符串

⛳️id函数和is用法

a1 = 'hello'
a2 = a1
a3 = 'hello'

# id函数 是用来获取变量的地址


# 上面3个字符串是否相同呢?
print(id(a1))
print(id(a2))
print(id(a3))
# 输出结果为
# 2664689321072
# 2664689321072
# 2664689321072
# 都一致 说明是一样的


# 当然也可以使用is函数来判断比较
# is函数其实就是判断内存地址是否相同的函数

print(a1 is a2)
# 结果是True 说明相同



# 接下来添加一个a4
a4 = 'wo'
# 接下来再来判断一下
print(a1 is a4)
# 返回的值是False
# 说明不相同

🔥三、截取和切片

⛳️字符串的截取

b1 = 'abcdef'

# 比如我们想要字符串的 d

# 就可以通过下面方法去截取
print(b1[3])

# 可能有人会问 d不是在字符串的第4个位置吗 为什么是3呢

# 因为字符串有一个index 在内存中 是从0开始排的

# 也就是说 b1中的字符串 每个字母对应的Index应该是  a:0  b:1  c:2  d:3  e:4  f:5



# 然后截取也可以是负数比如
print(b1[-1])

# 这个负数又和前面不一样  负数表示的是 这个字符串 最后一个数 就是-1 倒数第二个就是-2
# 并不是按照前面的 index去取的值

⛳️字符串的切片

s = 'abcdefg'


# 切片就是 截取字符串多个字符
print(s[0:3])

# 他的输出结果就是 abc
# 这个语法的意思就是  开始的位置:结束的位置(结束的位置是不会截取的)
# 然后这个和上面讲的截取的意思是一致的 也是判断Index



# 当然这里要注意一点
print(s[:3])
# 这个输出结果也是abc 因为开始的位置如果不填 就是默认从0开始

# 切片也是可以有负数的

# 问: 要获取efg 需要怎么用切片

# 有的小伙伴可能会觉得 写成print(s[-1:-3])就可以了  这个写法是错误的

# 因为切片是有顺序的切片是从左往右的

# 那么小伙伴又会觉得 那就反过来就好了 写成 print(s[-3:-1])这个写法也是错的

# 因为切片是不会取到结束的位置 所以这样写只能得到ef 得不到g



# 下面是正确的写法
print(s[-3:])
# 不写-1 这样默认取到最后一个位置 写了-1就取不到g 因为切片就是 包左不包右

# 也可以写成这样
print(s[-3:7])
# 因为数组一共就7个 然后从0开始 结束的index是6  那么这里写7 就一定包括了最后一个数

⛳️切片的参数 步长step

# 格式为: [start:end:step]

# 本来默认切片是从左往右取值并且是一个一个取值 加了步长就可以 2个 2个的取值或者更多

# 举个例子
print(s[0:6:2])
# 输出的结果就是 ace 就是跳着取值 先取a 然后跳过b 因为步长是2


# 在举个例子
print(s[0:7:3])
# 输出的结果就是 adg 这个就是跳过了2个值 先取a跳过b和c直接取d



# 但是这里需要注意的是 如果step为负数的话 是从右往左去取

# 什么意思呢?举个例子就明白了
print(s[::-1])
# 这个2个::就是表示取全部 然后step为-1 输出的结果就是gfedcba 就是反着去取值的



# 还有一点要注意
print(s[-1::-1])
# 这个输出结果也是gfedcba  这是什么原因呢 因为如果step是负数 就改变了原来的切片方向
# 那么切片的时候 切的-1到最后一个值 就是反着来切的
# 如果step取负数 然后前面的切片是按从左向右的话 就会输出不来结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZTLJQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值