字符串、列表、元组、字典、参数

python_two_day


作者:_晓冬

归档:学习笔记

2016/9/16

目  录

第1章... 1

1.1 可变和不可变类型... 1

第2章 字符串类型... 1

2.1 【重点】字符串取值方法... 1

2.2 【了解】字符串方法... 1

2.3 练习题... 2

2.4 打破顺序位置占位... 3

2.5 辨别find,rfind,index,rindex,ocunt 3

2.6 判断数字... 4

第3章 列表类型... 5

3.1 其他操作... 7

第4章 元组... 10

4.1 循环元组... 11

4.2 字典... 12

4.3 注意:设计数据结构的根本目的是方便自己的存和取... 13

4.4 两种赋值方式... 13

4.5 集合... 17

4.6 去重并定序... 19

第1章

1.1 可变和不可变类型

注意:当数值量较小时定义变量指向同一块内存空间

x=123
y=123
print(id(x))
print(id(y))

字符串也是一样样的

第2章 字符串类型

2.1 【重点】字符串取值方法

l  按照索引取值

l  按照切片取值

l  字符串长度计算:len

l  成员运算 :in 和 not in

l  移除空白strip

l  切分split

l  循环

2.2 【了解】字符串方法

l  .replace :替换

例:

msg=‘alex say i have one telsa,my name is alec‘
print(msg.replace(‘alex‘,‘Sb‘,1))

C:\python3\python.exe D:/python/untitled/two_day.py

Sb say i have one telsa,my name is alec

l  .format::占位

例:

print(‘my name is %s my age is %s‘ %(‘egon‘,18))
print(‘my name is {} my age is {}‘.format(‘egon‘,18))

C:\python3\python.exe D:/python/untitled/two_day.py

my name is egon my age is 18

my name is egon my age is 18

l  count说明

统计l在整个字符串出现的次数,可以按索引范围规定内统计

msg=‘hello word‘
print(msg.count(‘l‘,0,4))
print(msg.count(‘l‘,0,3))

C:\python3\python.exe D:/python/untitled/two_day.py

2.3 练习题

l  去除空格及打印以al开头的字符串

name = ‘ alex oldboy‘
#print(name.strip(‘ ‘))

name = ‘alex‘
a=name.startswith(‘al‘)
print(a)

C:\python3\python.exe D:/python/untitled/two_day.py

False

l  以l为分隔符

a=name.split(‘l‘)
print(a)

C:\python3\python.exe D:/python/untitled/two_day.py

[‘a‘, ‘ex‘]

l  将小写转化成大写

# print(name.upper())
#
# print(name.lower())

C:\python3\python.exe D:/python/untitled/two_day.py

ALEX

alex

l  输出name 变量对应的值的第2个字符

print(name[2])
print(name[1:3])
print(name[-2:])

C:\python3\python.exe D:/python/untitled/two_day.py

e

le

eX

l  cente说明

msg=‘hello word‘
print(msg.center(30,‘=‘))
print(msg.rjust(30,‘=‘))
print(msg.ljust(30,‘=‘))

C:\python3\python.exe D:/python/untitled/two_day.py

==========hello word==========

====================hello word

hello word====================

2.4 打破顺序位置占位

语法:

print(‘my name is {x} my age is {y}‘.format(x=‘wxd‘,y=19))
print(‘{0} {0} {1}‘.format(‘egon‘,19))

执行:

C:\python3\python.exe D:/python/untitled/two_day.py

my name is wxd my age is 19

egon egon 19

Process finished with exit code 0

2.5 辨别find,rfind,index,rindex,ocunt

l  find 说明

从左到右找,如有则返回第一个字符的索引;如果没有返回 -1

msg=‘hello word‘
print(msg.find(‘ell‘))
print(msg.find(‘x‘))

C:\python3\python.exe D:/python/untitled/two_day.py

1

-1

l  index说明

从左到右找,有则返回第一个字符的索引;没有则报错

print(msg.index(‘d‘))
print(msg.index(‘x‘))

C:\python3\python.exe D:/python/untitled/two_day.py

9

Traceback (most recent call last):

File "D:/python/untitled/two_day.py", line 115, in <module>

print(msg.index(‘x‘))

ValueError: substring not found

2

1

2.6 判断数字

age=10
inp=input(‘>>: ‘).strip()
if inp.isdigit():
    inp=int(inp)
    if inp > age:
        print(‘ok‘)

else:
    print(‘you mast input number‘)

C:\python3\python.exe D:/python/untitled/two_day.py

>>: fd

you mast input number

第3章 列表类型

3.1 追加

my_frinds=[‘w‘,‘x‘,‘z‘,1,3,5]
my_frinds.append(‘6‘)
print(my_frinds)
#print(my_frinds)

3.2 删除

my_frinds=[‘w‘,‘x‘,‘z‘,1,3,5]my_frinds=[‘w‘,‘x‘,‘z‘,1,3,5]
my_frinds.append(‘6‘)
print(my_frinds)
#print(my_frinds)
‘‘‘‘‘
my_frinds=[‘w‘,‘x‘,‘z‘,1,3,5]
#del my_frinds[2] 按照所引来删除
print(my_frinds)

my_frinds.remove(‘x‘)
print(my_frinds)

C:\python3\python.exe D:/python/untitled/two_day.py

[‘w‘, ‘x‘, ‘z‘, 1, 3, 5]

[‘w‘, ‘z‘, 1, 3, 5]

3.3 remove与pop的区别

l  remove 只是单纯的删除不会返回删除的值,并且是按照值来删除

l  pop  按照索引去删除 默认从末尾开始删除,并且可以取出删除的值

第4章 列表其他操作

4.1 【重点】随意插入一个值

my_girl_frinds=[‘alex‘,‘wupei‘,‘yuanhao‘,4,5]
my_girl_frinds.insert(0,‘sb_alex‘)
print(my_girl_frinds)

C:\python3\python.exe D:/python/untitled/two_day.py

[‘sb_alex‘, ‘alex‘, ‘wupei‘, ‘yuanhao‘, 4, 5]

Process finished with exit code

4.2 追加加多个值

my_girl_frinds=[‘alex‘,‘wupei‘,‘yuanhao‘,4,5]
# my_girl_frinds.insert(0,‘sb_alex‘)
# print(my_girl_frinds)
my_girl_frinds.extend([1,2,34,5])
print(my_girl_frinds)

C:\python3\python.exe D:/python/untitled/two_day.py

[‘alex‘, ‘wupei‘, ‘yuanhao‘, 4, 5, 1, 2, 34, 5]

Process finished with exit code 0

4.3 【常用操作】统计

my_girl_frinds=[‘alex‘,‘wupei‘,‘yuanhao‘,4,5]
print(my_girl_frinds.count(‘alex‘))

C:\python3\python.exe D:/python/untitled/two_day.py

1

Process finished with exit code 0

4.4 练习题

4.4.1 先进先出

l1=[]
l1.append(‘first‘)
l1.append(‘second‘)
l1.append(‘third‘)
print(l1.pop(0))
print(l1.pop(0))
print(l1.pop(0))

C:\python3\python.exe D:/python/untitled/two_day.py

first

second

third

4.4.2 先进后出

l1=[]
l1.append(‘first‘)
l1.append(‘second‘)
l1.append(‘third‘)
print(l1.pop())
print(l1.pop())
print(l1.pop())

C:\python3\python.exe D:/python/untitled/two_day.py

third

second

first

第5章 元组

5.1 【重点】区别于列表

和列表的唯一区别是:元组是不可变的

ages=(10,20,18,33) #ages=tuble((10,12,18,33))
print(id(ages),type(ages),ages)

C:\python3\python.exe D:/python/untitled/two_day.py

41796456 <class ‘tuple‘> (10, 20, 18, 33)

5.2 【重点】按索引取值

ages=(10,20,18,33) #ages=tuble((10,12,18,33))
#print(id(ages),type(ages),ages)
print(ages.index(10))

C:\python3\python.exe D:/python/untitled/two_day.py

0

5.3 【重点】切片取值

ages=(10,20,18,33) #ages=tuble((10,12,18,33))
#print(id(ages),type(ages),ages)
print(ages[0])

C:\python3\python.exe D:/python/untitled/two_day.py

10

5.4 【重点】长度len

ages=(10,20,18,33) #ages=tuble((10,12,18,33))
#print(id(ages),type(ages),ages)
print(ages.__len__())

C:\python3\python.exe D:/python/untitled/two_day.py

4

5.5 成员运算in /not in

ages=(10,20,18,33) #ages=tuble((10,12,18,33))
#print(id(ages),type(ages),ages)
#print(ages.__len__())
print(19 not in ages)

C:\python3\python.exe D:/python/untitled/two_day.py

True

5.6 【重点】循环列表:

l=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]
index=0
while index < len(l):
    print(l[index])
    index+=1

C:\python3\python.exe D:/python/untitled/two_day.py

a

b

c

d

e

5.7 【重点】循环元组

msg_dic={
    ‘apple‘:10,
    ‘tesla‘:10000,
    ‘mac‘:300,
    ‘lenovo‘:3000,
    ‘chicken‘:10,
}

goods_l=[]
while True:
    for key in msg_dic:
        print(key,msg_dic[key])
        choice = input(商品名称>>: ‘)
        if choice not in msg_dic:continue
        count = input(个数>>: ‘).strip()
        if count.isdigit():
            goods_l.append((choice,msg_dic[choice],int(count)))
            print(goods_l)

lenovo 3000

商品名称>>: apple

个数>>: sdfsa

chicken 10

商品名称>>: apple

个数>>: 10

[(‘apple‘, 10, 19), (‘apple‘, 10, 10)]

apple 10

商品名称>>:

第6章 字典

l  字典作用:存多个值,key-value 存取,取值速度快

l  字典定义:key必须是不可变类型,value可以是任意类型

6.1 【重点】按key存取值:可存可取

info={‘name‘:‘agen‘,‘age‘:18,‘sex‘:‘male‘,(0,‘mac‘):3000}
print(info[(0,‘mac‘)])

C:\python3\python.exe D:/python/untitled/two_day.py

3000

6.2 【掌握】长度算法len

info={‘name‘:‘agen‘,‘age‘:18,‘sex‘:‘male‘,(0,‘mac‘):3000}
print(info[(0,‘mac‘)])
print(info.__len__())

C:\python3\python.exe D:/python/untitled/two_day.py

3000

4

6.3 【掌握】成员运算in /not in

info={‘name‘:‘agen‘,‘age‘:18,‘sex‘:‘male‘,(0,‘mac‘):3000}
print(info[(0,‘mac‘)])
print(info.__len__())
print(‘name‘ in info )

C:\python3\python.exe D:/python/untitled/two_day.py

3000

4

True

6.4 【重点】删除

info={‘name‘:‘agen‘,‘age‘:18,‘sex‘:‘male‘,(0,‘mac‘):3000}
print(info[(0,‘mac‘)])
print(info.__len__())
print(‘name‘ in info )
info.pop(‘name‘)
print(info)

C:\python3\python.exe D:/python/untitled/two_day.py

True

{‘age‘: 18, ‘sex‘: ‘male‘, (0, ‘mac‘): 3000}

6.5 【掌握】键keys()/值valuse()/键值对items()

6.6 注意:设计数据结构的根本目的是方便自己的存和取

列表取值如果没有直接报错

info={‘name‘:‘agen‘,‘age‘:18,‘sex‘:‘male‘,(0,‘mac‘):3000}
info.fromkeys()
print(info[‘name1‘])

C:\python3\python.exe D:/python/untitled/two_day.py

Traceback (most recent call last):

File "D:/python/untitled/two_day.py", line 186, in <module>

info.fromkeys()

TypeError: fromkeys expected at least 1 arguments, got 0

l  get 取值不会报错可以赋值

info={‘name‘:‘agen‘,‘age‘:18,‘sex‘:‘male‘,(0,‘mac‘):3000}
print(info.get(‘name1‘,1))

C:\python3\python.exe D:/python/untitled/two_day.py

1

print(info.get(‘name1‘))

C:\python3\python.exe D:/python/untitled/two_day.py

None

6.7 两种赋值方式

6.7.1 链接式赋值

x=10

y=20

z=30

s=y=z

print(x,y,z)

m=10
n=20
m,n=n,m
print(m,n)

6.7.2 *—匹配赋值

从一个数据类型中解压出想要的值

t=(10.3,11.2,12.1,14.3,3.1)
x,y,z,a,b=t
print(x,y,z,a,b)

C:\python3\python.exe D:/python/untitled/two_day.py

10.3 11.2 12.1 14.3 3.1

t=(10.3,11.2,12.1,14.3,3.1)
x,*_,b=t
print(x,b)

C:\python3\python.exe D:/python/untitled/two_day.py

10.3 3.1

t=(10,20,30)
# x,y,z=t
# print(x,z)
x,*_=t
print(x)

6.8 for循环取值

直接取出字典的key和key值

info={‘name‘:‘agen‘,‘age‘:18,‘sex‘:‘male‘,(0,‘mac‘):3000}
for k,v in  info.items():
    print(k,v)

C:\python3\python.exe D:/python/untitled/two_day.py

name agen

age 18

sex male

(0, ‘mac‘) 3000

6.9 setdefault

有则不改,返回已经有的值,没有则新增,返回新增的值

6.9.1 传统添加多值

info={‘name‘:‘agen‘,‘age‘:18,‘sex‘:‘male‘,(0,‘mac‘):3000}
# for k,v in  info.items():
#     print(k,v)

if ‘hobbis‘ not in info:
    info[‘hobbis‘]=[]
    info[‘hobbis‘].append(‘music‘)
else:
    info[‘hobbis‘].append(‘read‘)
if ‘hobbis‘ not in info:
    info[‘hobbis‘]=[]
    info[‘hobbis‘].append(‘music‘)
else:
    info[‘hobbis‘].append(‘read‘)

print(info)

第一个if后的结果

C:\python3\python.exe D:/python/untitled/two_day.py

{‘name‘: ‘agen‘, ‘age‘: 18, ‘sex‘: ‘male‘, (0, ‘mac‘): 3000, ‘hobbis‘: [‘music‘]}

第二个if后的结果

C:\python3\python.exe D:/python/untitled/two_day.py

{‘name‘: ‘agen‘, ‘age‘: 18, ‘sex‘: ‘male‘, (0, ‘mac‘): 3000, ‘hobbis‘: [‘music‘, ‘read‘]}

Process finished with exit code 0

6.10 setdefault加值

如果存在key则不修改,如果不存在就添加

info.setdefault(‘hobbies‘,[]).append(‘music‘)
info.setdefault(‘hobbies‘,[]).append(‘read‘)
print(inf

C:\python3\python.exe D:/python/untitled/two_day.py

{‘name‘: ‘agen‘, ‘age‘: 18, ‘sex‘: ‘male‘, (0, ‘mac‘): 3000, ‘hobbies‘: [‘music‘, ‘read‘]}

Process finished with exit code 0

第7章 集合

7.1 特点:

l  每个元素必须是不可变类型(可hash,可作为字典的key)

l  没有重复的元素

l  无序

7.2 【重点】作用:去重

符号一览表


符号


定义


|


合集


&


交集


-


差集


^


对称差集


==


相同集合


>,>= ,<,<=


父集,子集

 

练习:

pythons={‘alex‘,‘egon‘,‘yuanhao‘,‘wupeiqi‘,‘gangdan‘,‘biubiu‘}
linuxs={‘wupeiqi‘,‘oldboy‘,‘gangdan‘}
#求出即报名python又报名linux课程的学员名字集合
print(pythons & linuxs)
#求出所有报名的学生名字集合
print((pythons | linuxs))
print(len(pythons | linuxs))
#求出只报名python课程的学员名字
print(pythons - linuxs)
#求出没有同时这两门课程的学员名字集合
print(pythons ^linuxs)

C:\python3\python.exe D:/python/untitled/two_day.py

{‘wupeiqi‘, ‘gangdan‘}

{‘biubiu‘, ‘gangdan‘, ‘alex‘, ‘oldboy‘, ‘wupeiqi‘, ‘yuanhao‘, ‘egon‘}

7

{‘egon‘, ‘biubiu‘, ‘yuanhao‘, ‘alex‘}

{‘biubiu‘, ‘oldboy‘, ‘alex‘, ‘egon‘, ‘yuanhao‘}

7.3 常用操作

7.3.1 删除

sl={1,2,3,‘a‘,4}
print(sl.pop())
sl.remove(‘a‘)
sl.remove(‘as‘)
print(sl)

1

Traceback (most recent call last):

File "D:/python/untitled/two_day.py", line 233, in <module>

sl.remove(‘as‘)

KeyError: ‘as‘

注意:

l  pop随机删除,并返回删除的结果

l  remove 单纯的删除,不会返回结果,如果删除的元素不在则报错

7.3.2 交集判断isdisjoint

sl={1,2,3,‘a‘,4}
s2={4,5}
print(sl.isdisjoint(s2))

如果sl和s2没有交集则返回True

7.4 【掌握】关系运算

7.5 去重并定序

l=[‘a‘,‘b‘,1,‘a‘,‘a‘]
print(list(set(l)))

C:\python3\python.exe D:/python/untitled/two_day.py

[‘b‘, ‘a‘, 1]

7.6 循环

l=[‘a‘,‘b‘,1,‘a‘,‘a‘]
#print(list(set(l)))
l_new=list()
s=set()
for item in  l:
    if item not in s:
        s.add(item)
        l_new.append(item)
        print(item)

C:\python3\python.exe D:/python/untitled/two_day.py

a

b

1

第8章 作业一: 三级菜单

要求:

l  打印省、市、县三级菜单

l  可返回上一级

l  可随时退出程序

8.1 方法一

#作业 三级菜单

‘‘‘
menu = {
    ‘beijing‘:{
        ‘haidian‘:{
            ‘wudaokou‘:{
                ‘soho‘:{},
                ‘wangyi‘:{},
                ‘google‘:{},
            },
            ‘zhongguancun‘:{
                ‘aiqiyi‘:{},
                ‘qichezhijia‘:{},
                ‘youku‘:{},
            },
            ‘shangdi‘:{
                ‘baidu‘:{},
            },
        },
        ‘changping‘:{
            ‘shahe‘:{
                ‘laonanhai‘:{},
                ‘beihang‘:{},
            },
            ‘tiantongyuan‘:{},
            ‘huilongguan‘:{},
        },
        ‘chaoyang‘:{},
        ‘dongcheng‘:{},
    },
    ‘shanghai‘:{
        ‘minhang‘:{
            ‘renminguangchang‘:{
                ‘zhajidian‘:{}
            }
        },
        ‘zhabei‘{
            ‘huochezhan‘:{
                ‘xiiecheng‘:{}
            },
        },
        ‘pudong‘:{},
    },
    ‘shandong‘:{},
}

exit_flag = False
current_layer = menu
layers  = [menu]
while not exit_flag:
    for k in current_layer:
        print(k)
    choice = input (">>:").strip()
    if choice == "b":
        current_layer =layers[-1]
        layers.pop()
    elif choice not in current_layer:continue
    else:
        layers.append(current_layer)
        current_layer = current_layer[choice]
‘‘‘

方法二:

################################################
# Task Name: 三级菜单                           #
# Description:打印省、市、县三级菜单             #
#              可返回上一级                      #
#               可随时退出程序                   #
#----------------------------------------------#
# AuthorWang_sir                          #
################################################

zone = {
    ‘山东‘ : {
        ‘青岛‘ : [‘四方‘,‘黄岛‘,‘崂山‘,‘李沧‘,‘城阳‘],
        ‘济南‘ : [‘历城‘,‘槐荫‘,‘高新‘,‘长青‘,‘章丘‘],
        ‘烟台‘ : [‘龙口‘,‘莱山‘,‘牟平‘,‘蓬莱‘,‘招远‘]
    },
    ‘江苏‘ : {
        ‘苏州‘ : [‘沧浪‘,‘相城‘,‘平江‘,‘吴中‘,‘昆山‘],
        ‘南京‘ : [‘白下‘,‘秦淮‘,‘浦口‘,‘栖霞‘,‘江宁‘],
        ‘无锡‘ : [‘崇安‘,‘南长‘,‘北塘‘,‘锡山‘,‘江阴‘]
    },
    ‘浙江‘ : {
        ‘杭州‘ : [‘西湖‘,‘江干‘,‘下城‘,‘上城‘,‘滨江‘],
        ‘宁波‘ : [‘海曙‘,‘江东‘,‘江北‘,‘镇海‘,‘余姚‘],
        ‘温州‘ : [‘鹿城‘,‘龙湾‘,‘乐清‘,‘瑞安‘,‘永嘉‘]
    },
    ‘安徽‘ : {
        ‘合肥‘ : [‘蜀山‘,‘庐阳‘,‘包河‘,‘经开‘,‘新站‘],
        ‘芜湖‘ : [‘镜湖‘,‘鸠江‘,‘无为‘,‘三山‘,‘南陵‘],
        ‘蚌埠‘ : [‘蚌山‘,‘龙子湖‘,‘淮上‘,‘怀远‘,‘固镇‘]
    },
    ‘广东‘ : {
        ‘深圳‘ : [‘罗湖‘,‘福田‘,‘南山‘,‘宝安‘,‘布吉‘],
        ‘广州‘ : [‘天河‘,‘珠海‘,‘越秀‘,‘白云‘,‘黄埔‘],
        ‘东莞‘ : [‘莞城‘,‘长安‘,‘虎门‘,‘万江‘,‘大朗‘]
    }
}
province_list = list(zone.keys())             #省列表
# flag = False
# flag1 = False
while True:
    print("  ".center(50,‘*‘))
    for i in province_list:
        print(province_list.index(i)+1,i)       #打印省列表
    pro_id = input("请输入省编号,或输入q(quit)退出:")   #ID
    if pro_id.isdigit():
        pro_id = int(pro_id)
        if pro_id > 0 and pro_id <= len(province_list):
            pro_name = province_list[pro_id-1]     #根据省ID获取省名称
            city_list = list(zone[pro_name].keys())    #根据省名称获取对应的值,从新字典中获取key,即市列表
            while True:
                print("  ".center(50,‘*‘))
                for v in city_list:
                    print(city_list.index(v)+1,v)       #打印市列表
                city_id = input("请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:")
                if city_id.isdigit():
                    city_id = int(city_id)
                    if city_id > 0 and city_id <= len(city_list):
                        city_name = city_list[city_id-1]    #根据市ID获取市名称
                        town_list = zone[pro_name][city_name]   #根据省名称获取对应的值,从新字典中获取值,即县列表
                        while True:
                            print("  ".center(50,‘*‘))
                            for j in town_list:
                                print(town_list.index(j)+1,j)
                            back_or_quit = input("输入b(back)返回上级菜单,或输入q(quit)退出:")
                            if back_or_quit == ‘b‘:
                                break                #终止此层while循环,跳转到上一层While
                            elif back_or_quit == ‘q‘:
                               # flag1 = True
                               # break               #根据标志位结束程序。
                                exit()
                            else:
                                print("输入非法!")
                    else:
                        print("编号%d不存在。"%city_id)
                elif city_id == ‘b‘:
                    break
                elif city_id == ‘q‘:
                    # flag = True
                    # break
                    exit()
                else:
                    print("输入非法!")
                # if flag1:
                #     break
        else:
            print("编号%d不存在。"%pro_id)
    elif pro_id == ‘q‘:
        break
    else:
        print("输入非法!")
    # if flag or flag1:
    #     break

第9章 作业二:请闭眼写出购物车程序

需求:

l  用户名和密码存放于文件中,格式为:egon|egon123

l  启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序

l  允许用户根据商品编号购买商品

l  用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

l  可随时退出,退出时,打印已购买商品和余额


#写出购物车
# -*- coding: utf-8 -*-

product_list = [
        ["Iphone",5800],
        ["MAC PRO",16800],
        ["Bike",800],
        ["Coffee",30],
]

shopping_list = []

salary = input("请输入你的工资:")
#判断是否为数字
if salary.isdigit():
    salary = int(salary)
    while True:
        for index,item in enumerate(product_list):
            #打出菜单
            print(index,item[0],item[1])

        choice = input("请选择要购买的商品编号[quit]>>")
        if choice.isdigit():
            choice = int(choice)
            if choice >=0 and choice < len(product_list):
                #判断钱是否够用
                p = product_list[choice]

                if p[1] <= salary:
                    shopping_list.append(p)
                    salary -= p[1]
                    print("Added \033[32;1m[%s]\033[0m into your shopping cart,and your current balance is \033[1;31;40m%s\033[0m"%(p,salary))
                else:
                    print("钱不够,你只有 \033[5;31;42m[%s] \033[0m "% salary)
            else:
                print("没有此商品...")

        elif choice == "quit":
            print("已购买的商品".center(50,"-"))
            for i in shopping_list:
                print(i)
            print("Your left balance is ",salary)
            exit()
        else:
            print("未识别,请输入正确的指令!!")

时间: 2025-01-15 03:11:41

字符串、列表、元组、字典、参数的相关文章

python数据类型基础总结(字符串 列表 元组 字典 集合 )

字符串: 有序.不可变数据类型,支持索引,切片,步长(字符串中的每一个字母或字符都称为元素) 索引(下标):通过索引精确定位到每个元素 索引从左开始向右排 从0开始 索引时不能超过最大值,超出报错 从右向左排从-1开始 切片(顾头不顾尾) 步长 print(name[::2] 取整个字符串,步长为2 字符串方法: upper 全部大写 lower全部小写 capitalize 首字母大写 title每个单词的首字母大写 swapcase 大小写转换 starswith 以..开头 endswit

Python -- 字符串 列表 元组 字典

小Q浪花有意千重雪桃李无言一队春一壶酒一竿纶世上如侬有几人.  ---李煜<渔歌子> --------------------------------------------------------------------------------------- 序列  是Python中最基本的数据结构.序列中每一个元素的位置都有其对应数字编码或索引比如第一个元素的编码是0第二个元素的索引是1............. 序列中可进行的操作索引.切片.加.乘.检查成员另外的长度.最大最小值等内建函

python 字符串,列表,元组,字典相互转换

1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'} print type(str(dict)), str(dict) 字典能够转为元组,返回:('age', 'name', 'class') print tuple(dict) #字典能够转为元组,返回:(7, 'Zara', 'First') p

Python笔记第2章,文件,字符串,列表,元组,字典,集合的使用

<--目录--> 1)Python文件处理 2)字符串处理 3)列表.元组.字典的使用 4)集合的妙用 1.文件处理 文件处理模式 r 以只读模式打开文件 w 以只写模式打开文件 a 以追加模式打开文件 r+  为读写模式 rw跟r+一样,先读后写 w+  为写读模式,会先清空这个文件,再往里面写 a+  为追加模式 rb 以读写模式打开 wb 以写读模式打开 ab 以追加及读模式打开 +b 表示必须以二进制的模式处理文件,Windows系统上使用有效,Linux系统上使用无效,但工作中Lin

Python 整数 长整数 浮点数 字符串 列表 元组 字典的各种方法

对于Python, 一切事物都是对象,对象基于类创建!! 注:查看对象相关成员var,type, dir 一.整数 如: 18.73.84 每一个整数都具备如下需要知道的功能: def bit_length(self): """ 返回表示该数字的时占用的最少位数 """ """ int.bit_length() -> int Number of bits necessary to represent self

数据类型之列表 元组 字典

数据类型| 表示形式 |  是否有序列 | 对象是否可变|访问顺序 数字     |   1234  |     没有下标  |  不可变 | 直接访问 字符串| 'asd3234'|     有下标    |    不可变  | 序列访问 元组  tuple |(1,'abc',[1,3] )|有下标 |  不可变  | 序列访问 列表 list | [1,'abc',(1,3),[2,3]] | 有下标 |  可变 | 序列访问 字典 dict |  {'key1':'values','ke

python中列表 元组 字典 集合的区别

列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复项的.如果我们扩大清单的范围,统计我们过去一周所有的花费情况,那么这也是一个清单,但这个清单里会有类别不同的项,比如我们买东西是一种花费,交水电费也是一种花费,这些项的类型是可以使不同的.pyt

day5_python学习笔记_chapter6_字符串列表元组

1. 序列:seq[n], seq[x:y], seq * n序列重复n次,切片, 序列翻转 s="abcde", s[::-1]="edcba" 内建函数:1. 类型转换: list(iter), str(obj), unicode(obj), tuple(iter) , 2. len(seq), max(), min() , reversed(), sorted(), sum(), 2. 字符串: in ,not in ,,, import string , s

Python的列表&amp;元组&amp;字典&amp;集合

目录 列表(list) 列表的定义 列表的查询 增加数据 修改数据 删除数据 其它常用操作 元组(tuple) 元组的拆包 具名元组 字典(dict) 创建字典 字典添加数据 查询字典数据 修改字典数据 删除字典数据 其它操作 字典的遍历 集合(set) 集合的创建 访问集合 更新集合 删除集合 集合的操作符 集合应用 列表(list) ? 列表(list)是python以及其他语言中最常用到的数据结构之一.Python使用中括号 [ ] 来解析列表.列表是可变的(mutable)--可以改变列

Python数据结构之列表元组字典的用法

数据结构的含义 在学习数据结构之前,我们先来了解下数据结构的含义.数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python语言中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序号----即元素的位置,称为索引或下标,索引从0开始递增. 典型的序列包括列表.元组和字符串.其中,列表是可变的(可修改),而元组和字符串是不可变的(一旦创建了就是固定的).列表.元组和字符串也是较常用的数据结构