Python学习第三天

目录

一、查看地址

二、字符串与列表的索引

三、字符串切片操作

四、代码练习


一、查看地址

       在Python中可以用id()函数查看地址,Python中一个数据占据一片内存空间,不同的变量引用该数据时,都是指向这一片空间。

s1='hello'
s2=s1
s3='hello'
print(s1,s2,s3)  #hello hello hello
print('s1地址:',id(s1))  #2351863828336
print('s2地址:',id(s2))  #2351863828336
print('s3地址:',id(s3))  #2351863828336

二、字符串与列表的索引

       Python中的字符串,有点类似于用一个字符型列表存放字符,即C语言中的字符型数组。

s = 'hello'
print(s[0])  #h

       所以字符串可以像列表一样进行索引。索引分为两种,一种从左往右,下标从0开始;一种从右往左,下标从-1开始。 

       字符串与列表索引机制是一样的。

三、字符串切片操作

格式:字符串变量[start;end:step]  #step默认为1,step为负数则表示从右往左切片,此时start是从右边开始

       和rang()一样,end不被包括在内,如不指定start则默认为0,如不指定end则默认为最后一个元素的索引值+1(即把后面所有的元素都切进来)。如下:

number = 'abcdefg'
print(number[0:3])  #abc
print(number[:3])  #abc
print(number[3:])  #defg

切片时,start和end的值,两套索引规则都可以使用,也可以交叉混合使用。

number = 'abcdefg'
print(number[-3:7])  #efg

       注意,切片操作如果将原字符串全部切下,则新产生的字符串与原字符串地址相同,否则地址不相同。

number = 'abcdefg'
x=number[:]
y=number[:3]
print(id(number))  #2019101971952
print(id(x))  #2019101971952
print(id(y))  #2019101974448

        注意:将字符串a完整切片产生的字符串b,虽然地址与a一致,但实际b和a不再是同一个字符串。对b进行修改,a的值不会发生改变。而要是简单的将a赋值给b,则修改b之后,a的值也会改变。所以b=a[:]也被称为字符串的复制。

四、代码练习

1、编写代码实现在超市购买商品。

print('-' * 10, '欢迎光临@@超市', '-' * 10)
count = 0  # 存放商品总金额
while True:
    price = float(input('请输入商品价格:'))
    number = int(input('请输入商品数量:'))
    count += price * number
    get = input('当前商品总额为%.2f,继续购物请按任意键,退出请按“q”' % count)
    if get == 'q':
        break
print('请付款%.2f元' % count)

2、猜数字游戏。

import random

number = random.randint(1, 10)
print('-' * 10, '欢迎来到猜数字游戏', '-' * 10)
choice = input('     按“s”开始游戏,按“q"退出游戏')  # 利用选择结构进入游戏或退出
if choice == 's':
    while True:  # 利用循环结构可以多次猜测
        get_number = int(input('请输入你猜的数字(范围1-10):'))
        if get_number == number:
            print('恭喜你猜对啦!')
            break
        elif get_number > number:
            print('你猜大啦!')
        else:
            print('你猜小啦!')
else:
    exit()

3、如图

import random

print('-' * 10, '欢迎来到掷色子游戏', '-' * 10)
count = 0
while True:
    choice_start = input('  开始游戏请输入“s”,结束游戏请输入“q”\n')
    if choice_start == 'q':  # 玩家选择退出游戏
        print('游戏已结束')
        break
    elif choice_start == 's':  # 玩家选择开始游戏
        #count += 1
        if count < 5:  # 判断玩家金币是否足以开始游戏
            choice_count = input('您的金币为%d,不足以开始游戏(5金币一次),是否充值?是/y  否/n\n' % count)
            if choice_count == 'y':  # 玩家选择充值
                money = int(input('请输入充值金额:\n'))
                count += money
                print('当前金币余额:%d' % count)
            else:  # 玩家没有充值
                print('金币不足,将退出游戏')
                print('游戏已结束')
                break
        else:  # 玩家的金币足以开始游戏
            count -= 5
            saizi1 = random.randint(1, 6)
            saizi2 = random.randint(1, 6)
            guss = input('猜大小:小(1)  大(2)\n')
            if saizi1 + saizi2 < 7:  # 生成色子的结果
                result = '1'
            else:
                result = '2'
            if guss == result:  # 判断是否猜对
                print('恭喜你,猜对了,奖励两个金币!')
                count += 2
                print('当前金币余额:%d' % count)
            else:
                print('猜错了,请再接再厉!')
                print('当前金币余额:%d' % count)
    else:  # 玩家既没选择y也没选择n
        print('输入有误,请重新输入')

 因为Python自定义函数的编写还不会,所以直接写的。后续学习函数之后对此处代码进行重新修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值