目录

  • 1 数据类型:元组
  • 2 练习:购物车(enumerate()函数)
  • 3 数据类型:字典
  • 3.1 字典
  • 3.2 创建字典的两种方式
  • 3.3 常用操作
  • 4 数据类型:字符串
  • 4.1 创建字符串
  • 4.2 字符串拼接
    • 4.3 字符串内置方法
    • 拓展
    • 1.maketrans()方法
    • 2.字符串引号

1 数据类型:元组

元组:不可修改

a=()#定义一个空的元组
b=(1,)#定义一个只有一个元素的元素,加逗号,在web框架中不加逗号可能不会被识别为一个元组
c=(1,2,3,4,6)#定义多个元素的元组
print(c[1])#取出元组中单个值
print(c[1:2])#同时取出多个值的时候,返回值是一个元组
print(c[1:3])#查询方式和列表相同
print(c[1::2])
print(c.count(1))#统计元素个数
print(c.index(1, 0, -1))#查找元素位置

2 练习:购物车(enumerate()函数)

product_list=[('Mac',9000),('kindle',800),('tesla',900000),('python book',105),('bike',2000),]
saving=input('please input your money:')
shopping_car=[]
if saving.isdigit():saving=int(saving)while True:#打印商品内容for i,v in enumerate(product_list,1):print(i,'>>>>',v)#引导用户选择商品choice=input('选择购买商品编号[退出:q]:')#验证输入是否合法if choice.isdigit():choice=int(choice)if choice>0 and choice<=len(product_list):#将用户选择商品通过choice取出来p_item=product_list[choice-1]#如果钱够,用本金saving减去该商品价格,并将该商品加入购物车if p_item[1]<saving:saving-=p_item[1]shopping_car.append(p_item)else:print('余额不足,还剩%s'%saving)print(p_item)else:print('编码不存在')elif choice=='q':print('------------您已经购买如下商品----------------')#循环遍历购物车里的商品,购物车存放的是已买商品for i in shopping_car:print(i)print('您还剩%s元钱'%saving)breakelse:print('invalid input')

拓展:enumerate()函数

enumerate(sequence, [start=0])函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 sequence -- 一个序列、迭代器或其他支持迭代对象。 start -- 下标起始位置。  返回enumerate(枚举) 对象。

参考链接:https://www.runoob.com/python3/python3-func-enumerate.html

product_list=[('Mac',9000),('kindle',800),('tesla',900000),('python book',105),('bike',2000),]
for i in enumerate(product_list):print(i)
for i in enumerate(product_list,1):print(i)
for i,v in enumerate(product_list):print(i,">>>",v)
print(list(enumerate(product_list)))

输出结果:

(0, ('Mac', 9000))
(1, ('kindle', 800))
(2, ('tesla', 900000))
(3, ('python book', 105))
(4, ('bike', 2000))
(1, ('Mac', 9000))
(2, ('kindle', 800))
(3, ('tesla', 900000))
(4, ('python book', 105))
(5, ('bike', 2000))
0 >>> ('Mac', 9000)
1 >>> ('kindle', 800)
2 >>> ('tesla', 900000)
3 >>> ('python book', 105)
4 >>> ('bike', 2000)
[(0, ('Mac', 9000)), (1, ('kindle', 800)), (2, ('tesla', 900000)), (3, ('python book', 105)), (4, ('bike', 2000))]

3 数据类型:字典

3.1 字典:

  • 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
  • 键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行

3.2字典的创建有两种方式:

  • 1.使用大括号创建,常用
  • 2.使用dict()函数创建字典
dic ={'a':1,'b':2,'c':3,'Age':23}# 创建字典
dict1 = { 'Name': 'Zara', 'Age': 7, 'Class': 'First' }
dict2 = dict((('age',23),('name','zzh')))
dict3 = dict([('name','zh'),('age',23)])
dict4 = dict([['name','h'],['age',23]])
seq = ('name', 'age', 'sex')#从seq中获取数据创建新的字典
dict0 = dict.fromkeys(seq)
print ("新的字典为 : %s" %  str(dict0))
dict0 = dict0.fromkeys(seq, 10)
print ("新的字典为 : %s" %  str(dict0))
dict0 = dict0.fromkeys(seq, ['test1','test2','test3'])
print ("新的字典为 : %s" %  str(dict0))print(dict2)
print(dict3)
print(dict4)dict0['age'][1]=23
print ("新的字典为 : %s" %  str(dict0))#新的字典为 : {'name': ['test1', 23, 'test3'], 'age': ['test1', 23, 'test3'], 'sex': ['test1', 23, 'test3']}

输出结果:

新的字典为 : {'name': None, 'age': None, 'sex': None}
新的字典为 : {'name': 10, 'age': 10, 'sex': 10}
新的字典为 : {'name': ['test1', 'test2', 'test3'], 'age': ['test1', 'test2', 'test3'], 'sex': ['test1', 'test2', 'test3']}
{'age': 23, 'name': 'zzh'}
{'name': 'zh', 'age': 23}
{'name': 'h', 'age': 23}
新的字典为 : {'name': ['test1', 23, 'test3'], 'age': ['test1', 23, 'test3'], 'sex': ['test1', 23, 'test3']}

3.3 常用操作

dict1['School'] = "RUNOOB" # 不存在键值对则添加
print(1,dict1)
dict1['School']="Heilongjiangkejidaxue"#存在键值对则进行修改
print(2,dict1)
print(3,dict1.setdefault('Age', 23))#原字典中存在该键值对,则不进行修改或者添加,函数返回值为传入的‘值’
print(4,dict1)
print(5,dict1.setdefault('hobby','girl'))#原字典中不存在,则进行追加
print(6,dict1)print(7,dict1.items())#字典中所有的项,返回值类型dict_items
print(8,dict1.keys())#字典中所有的键,返回值类型dict_keys
print(9,dict1.values())#字典中所有的值,返回值类型dict_valuesdict1['name']='zzh'#字典中存在则修改,不存在则追加
dict1.update(dic)#将字典dic中的内容追加到dict1中,重复则覆盖
dict4 = dict1.copy()#字典的浅复制
print(10,dict1)print(11,type(dict1.popitem()),dict1.popitem())#弹出字典中最后一对键值,返回弹出的键值对,返回值类型是元组
print(12,dict1)
print(13,dict1.pop('School'))#弹出指定键值,并返回键对应的值
print(14,dict1)
dict1.clear()      # 清空字典所有条目
del dict1          # 删除字典print(dict4)
print('Age' in dict4)#判断某个键是否在字典中存在
print('Age' not in dict4)dic = {1:1,9:5,0:0,2:3}
print(sorted(dic, key=None, reverse=False))#根据键排序#字典的遍历 以下两种方式中,第一种效率较高一点
for i in dict4:#遍历出的i是dict的键print(i,'>>>',dict4[i])
for item in dict4.items():#每一个item都是一个元组print(item)
for key,value in dict4.items():print(key,">>>",value)

输出结果:

1 {'Name': 'Zara', 'Age': 7, 'Class': 'First', 'School': 'RUNOOB'}
2 {'Name': 'Zara', 'Age': 7, 'Class': 'First', 'School': 'Heilongjiangkejidaxue'}
3 7
4 {'Name': 'Zara', 'Age': 7, 'Class': 'First', 'School': 'Heilongjiangkejidaxue'}
5 girl
6 {'Name': 'Zara', 'Age': 7, 'Class': 'First', 'School': 'Heilongjiangkejidaxue', 'hobby': 'girl'}
7 dict_items([('Name', 'Zara'), ('Age', 7), ('Class', 'First'), ('School', 'Heilongjiangkejidaxue'), ('hobby', 'girl')])
8 dict_keys(['Name', 'Age', 'Class', 'School', 'hobby'])
9 dict_values(['Zara', 7, 'First', 'Heilongjiangkejidaxue', 'girl'])
10 {'Name': 'Zara', 'Age': 23, 'Class': 'First', 'School': 'Heilongjiangkejidaxue', 'hobby': 'girl', 'name': 'zzh', 'a': 1, 'b': 2, 'c': 3}
11 <class 'tuple'> ('b', 2)
12 {'Name': 'Zara', 'Age': 23, 'Class': 'First', 'School': 'Heilongjiangkejidaxue', 'hobby': 'girl', 'name': 'zzh', 'a': 1}
13 Heilongjiangkejidaxue
14 {'Name': 'Zara', 'Age': 23, 'Class': 'First', 'hobby': 'girl', 'name': 'zzh', 'a': 1}
{'Name': 'Zara', 'Age': 23, 'Class': 'First', 'School': 'Heilongjiangkejidaxue', 'hobby': 'girl', 'name': 'zzh', 'a': 1, 'b': 2, 'c': 3}
True
False
[0, 1, 2, 9]
Name >>> Zara
Age >>> 23
Class >>> First
School >>> Heilongjiangkejidaxue
hobby >>> girl
name >>> zzh
a >>> 1
b >>> 2
c >>> 3
('Name', 'Zara')
('Age', 23)
('Class', 'First')
('School', 'Heilongjiangkejidaxue')
('hobby', 'girl')
('name', 'zzh')
('a', 1)
('b', 2)
('c', 3)
Name >>> Zara
Age >>> 23
Class >>> First
School >>> Heilongjiangkejidaxue
hobby >>> girl
name >>> zzh
a >>> 1
b >>> 2
c >>> 3

4 数据类型:字符串

4.1 创建字符串

#创建字符串
str0 = 'Let\'s go';
str1 = 'zhuzihan'
str2 = "Let's go"
str3 = "zhuzihan"
print(1,str0)
print(2,str1)
print(3,str2)
print(4,str3)

4.2 字符串拼接

a = '123'
b = 'abc'
c = '!@#'
print(10,a+b+c)
print(11,''.join([a,b,c]))
print(12,''.join((a,b,c)))

输出结果:

10 123abc!@#
11 123abc!@#
12 123abc!@#

4.3 字符串的内置方法

str1 = 'hello kitty'
print(13,str1.count('ll'))#统计某字符串在原字符串中出现的次数
print(14,str1.capitalize())#将字符串首字母大写
print(15,str1.center(50, '-'))#字符串居中-------------------hello kitty--------------------
#print(str1.center(50, '这个位置不可为空,可以为空格'))
str1 = '秘密'
str1 = str.encode('UTF-8', errors='strict')#字符串编码
print(16,str1)
str1 = str1.decode('UTF-8', errors='strict')#字符串解码
print(17,str1)
print(18,str1.endswith('密'))#以某个字符串结尾
print(19,str1.startswith('秘'))#以某个字符串开头
str1='luyangyang\twangtingye';
print(20,str1.expandtabs(tabsize=10))#设置\t(tab)所占的空格数,默认是4个
print(21,str1.find('y',str1.find('y')+1,-1))#返回第一个匹配位置的索引,不存在则返回-1
str1='luyangyang{doing}{what}'
print(22,str1.format(doing = " has ",what = "short leg"))#字符串格式化输出
print(23,str1.format_map({"doing":" has ","what":"short leg"}))#功能同上,传入参数为字典类型
print(24,str1.index('y'))#功能同find(),返回第一个匹配位置的索引,不存在则报错
print(25,str1.isalnum())#判断字符串中是否只包含数字或者
print(26,str1.isdecimal())#判断字符串为十进制字符串
print(27,str1.isalpha())#判断字符串是否为字母字符串
print(28,str1.isascii())#判断字符串是否全是ASCII码字符
print(29,'123.00'.isdigit())#判断是否是一个整型数字
print(30,'import'.isidentifier())#判断字符串是否是pyrhon中的标识符
print(31,'dsa@'.islower())#判断字符串中字母是否全是小写
print(32,'A123'.isupper())#判断字符串中字母是否全是大写
print(33,'132'.isnumeric())#判断字符串是否是一个数字字符串
print(34,'123'.isprintable())#是否含有\n,\t等不能显示的字符,不含返回true
print(35,' a'.isspace())#判断字符串是否全部是空格
print(36,'Return True'.istitle())#字符串是否是title,也就是每个单词首字母是大写
print(37,"hello AAA world".lower())#将所有的大写字母变为小写
print(38,"hello AAA world".upper())#将所有的小写字母变为大写
print(39,"hello AAA world 你好世界".swapcase())#大写变小写 小写变大写
print(40,"hello AAA world".ljust(30, '*'))#hello AAA world***************一共30位,其余的用*填充
print(41,"hello AAA world".rjust(30, '*'))#***************hello AAA world
print(42,"\n *****\n\n  ".strip(),'---')#将字符串开头和结尾的换行符、空格等去掉
print(43," *****  ".lstrip(),'---')#将字符串开头的换行符、空格等去掉
print(44," *****  ".rstrip(),'---')#将字符串结尾的换行符、空格等去掉'''
输出结果:th3s 3s str3ng 2x1mpl2....w4w!!!
将字符串中的aeiou分别替换为12345
maketrans()方法创建映射,以字典的形式返回{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
translate()方法进行替换
'''
intab = "aeiou"
outtab = "12345"
trantab = str1.maketrans(intab, outtab)
print(45,trantab)
str1 = "this is string example....wow!!!"
print (46,str1.translate(trantab))seq = str1.partition('i')#根据指定的分隔符将字符串进行分割。返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
print(47,seq)
seq = str1.rpartition('i')
print(48,seq)str1 = str1.replace('i', 'I', 2)#用指定内容自左向右替换若干个字符串中指定元素
print(49,str1)print(50,str1.rfind('i'))#自右向左查找指定内容并返回自左向右的索引
print(51,str1.split(" ", 2))#按照指定内容分割字符串为列表,指定列表最大下标
print(52,str1.rsplit(" ", 2))#按照指定内容分割字符串为列表,指定列表最大下标
print(53,str1.title())#将字符串转换为标题,即每个单词的首字母都大写

输出结果:

13 1
14 Hello kitty
15 -------------------hello kitty--------------------
16 b'UTF-8'
17 UTF-8
18 False
19 False
20 luyangyang          wangtingye
21 6
22 luyangyang has short leg
23 luyangyang has short leg
24 2
25 False
26 False
27 False
28 True
29 False
30 True
31 True
32 True
33 True
34 True
35 False
36 True
37 hello aaa world
38 HELLO AAA WORLD
39 HELLO aaa WORLD 你好世界
40 hello AAA world***************
41 ***************hello AAA world
42 ***** ---
43 *****   ---
44  ***** ---
45 {97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
46 th3s 3s str3ng 2x1mpl2....w4w!!!
47 ('th', 'i', 's is string example....wow!!!')
48 ('this is str', 'i', 'ng example....wow!!!')
49 thIs Is string example....wow!!!
50 11
51 ['thIs', 'Is', 'string example....wow!!!']
52 ['thIs Is', 'string', 'example....wow!!!']
53 This Is String Example....Wow!!!

拓展:

1. maketrans()方法

Python maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

注:两个字符串的长度必须相同,为一一对应的关系。

参考链接:https://www.runoob.com/python/att-string-maketrans.html

2.字符串引号

参考链接:https://blog.csdn.net/weixin_40457797/article/details/82591318

Python菜鸟起飞day2--数据类型(元组,字典,字符串)相关推荐

  1. Python学习第七课-元组字典集合

    Python学习第七课-元组&字典&集合 一.元组 1.1元组简介 1.2元组的拆包 1.3字符串拆包 1.4列表的拆包 1.5拆包练习 二.字典的简介 2.1介绍 2.2操作 三.字 ...

  2. Python菜鸟入门:day06元组与字典

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  3. python 高级变量类型(列表/元组/字典/字符串)

    前言 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) 真 True 非 0 数 -- 非零即真 假 False 0 复数型 ...

  4. python学习笔记8(元组、字符串)

    元组.字符串 元组(tuple) 本质:是一种有序集合 特点: 1.与列表非常相似 2.一旦初始化就不能修改 3.使用小括号 创建 **格式:**元组名 = (元组元素1, 元组元素2, --, 元组 ...

  5. python语言中的数据类型之字典

    数据类型 字典类型dict 用途:记录多个值,列表是索引对应值,而字典是key对应值,其中key对value有描述性 定义方式:在{ }用逗号分隔开多个元素,每个元素都是key:value形式,其中k ...

  6. Python菜鸟入门:day04数字与字符串

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  7. Python基础语法七:元组字典和集合

    1.元组 1.什么是元组 元组是不可变的列表(不支持增删改的操作),元组是有序的(支持下标操作) 元组是容器型数据类型,将()作为容器的标志,多个元素之间用逗号,隔开 元组中的元素的要求和列表一样 1 ...

  8. python 复制dict_Python高级数据类型之字典、集合【明哥陪你学Python-六】

    上一篇我们简单对Python的基础数据类型做了说明和讲[Python高级数据类型之列表.元组],本篇我们继续针对Python的数据类型进行高级数据类型的介绍. 我们来先看一张图表: 字典(dict) ...

  9. 【Python学习】Day-011 Day-012 元组、字符串、字符编码、字符串相关方法、字符串格式化

    文章目录 1. 元组(tuple) 2. 字符串(str) 2.1 认识字符串 2.2 转义字符 2.3 r字符串 2.4 字符编码 2.5 字符串基本操作 3. 字符串相关方法 4. 字符串格式化 ...

  10. python中字典类型中的item是什么-Python中的基本数据类型之字典类型

    字典类型是键值对构成的数据类型,也就是一个键对应一个值,对于存储某些一一对应数据十分的方便 字典的创建 #在Python中字典类型是dict类型 a = {"name":" ...

最新文章

  1. LoadRunner SQL 2008
  2. android项目两种构建方式的整合(Eclipse/idea和Android Studio)
  3. Unity学习笔记3 简易2D横版RPG游戏制作(三)
  4. 【PC工具】更新常用USB转串口芯片MAC驱动,CH340G驱动安装有可能遇到的问题及解决办法...
  5. Android_(菜单)选项菜单
  6. 2021高值人才职业发展洞察:连接、信任与赋能----“高能”、“高薪”、“高潜”...
  7. 从未在一起更让人遗憾_科比生涯4大遗憾,只有1个MVP,错过保罗,跟腱撕裂再无传奇...
  8. 华为机试HJ91:走方格的方案数
  9. OpenCV——颜色均匀渐变
  10. 详测 Generics Collections: TObjectList、TObjectQueue、TObjectStack
  11. withRouter有什么用?干嘛用?为啥要用它啊???一分钟理解!
  12. MATLAB绘制地图超详细教程
  13. 如何在教学中利用计算机网络,教师论苑(二十二)| 利用XMind思维导图优化计算机网络基础课堂教学...
  14. 精通 CSS+DIV 网页样式与布局 158
  15. 基于单神经元的自适应PID算法实现步骤与MATLAB代码
  16. U盘不显示文件但有内存
  17. icon php图标集合,iconfont字体图标和各种css小图标的详解
  18. 自己搭建开源数据统计报表系统
  19. Centos 下解压和压缩rar文件
  20. 全国公立医院病案首页上报系统(适用于二、三级医院)

热门文章

  1. 显卡用什么软件作压力测试,推荐一个显卡的跑分跟压力测试的软件TimeSpy
  2. 鼠标连点器(VB.net 全局键盘钩子+模拟鼠标 左键、右键)
  3. 一种针对图数据超级节点的数据建模优化解决方案
  4. 【JavaSE基础 】Eclipse教程
  5. M1芯片的苹果电脑配置android开发环境
  6. reviewboard 介绍
  7. PDF编辑器里的测量工具如何使用?
  8. 怎样将exe打包成服务运行
  9. html插入swf自动播放,html嵌入播放器,flv视频播放器 Flvplayer.swf 可自动播放参数说明...
  10. 点云与图像融合的深度学习方法综述