python的数据类型

一、基础语法

1、terminal 系统终端,命令行

python console python命令

2、# 单行注释

""" """ 多行注释

快捷多行注释 ctrl+/

输入:input

name = input("请输入:")
print(name ,"他是个厉害的人")

变量的作用:存储数据

变量名规则:

1、字母 数字 _ 组成 不能以数字开头、

2、不要使用python的关键字

在python console可以查看所有的关键字

import keyword
keyword.kwlist

变量名规范:

见名知义

下划线连接

驼峰命名法

二、数据类型

1、标识符:在python 里面自己命名的东西叫标识符

变量名称是不是标识符? 是

函数名称、类名称、模块名、包名 均为标识符

2、数据类型

1)整型

age = 18 #数字、整数、小数

2)字符串

3)布尔类型 True False

4)列表 list a = ['yuyan',1]

5)元祖 tuple b = ('yuyan',1)

6)字典 dict c = {"name":"xiaojing","age":1}

7)集合 set

三、字符串

1、字符串数据左右两边必须加引号  ' "  """
2、三引号可以多行打印
name_two = """ hhhhhhhh 
wozai 
"""
如果字符串内部有双引号,那么用单引号表示字符串
如果字符串内部有单引号,那么用双引号表示字符串
name_three = "'小美'很好看"
# TODO: 如果想要用字符串表示windows系统下面的路径
在字符串前加一个r'D:\test\'
file_path = r'D:\test\1.txt'

1、字符串的操作

1)字符串的拼接 +

name_one = ' bad'
name_two = ' bay'
nane_full = name_one +'' + name_two
print(nane_fu1l)

2)字符串重复多次 *

name = "badboy"
print(name * 5)

3)获取字符串的某个字符

判断字符长度:len()

打印:print(len())

name = "你好 世界"

读取数据索引从0开始

name_one = name[0] 

从右面开始从-1 开始

name_two = name[-1]

切片

a = "今天很好,是不是"
a_01 = a[start: end: step]  取左边,不取右边
print(a[0:2])  #今天

步长

获取所有print(a[:])

prin t(a[::2]) 步长为2 跳一个

步长如果为正,左边往右边。步长为负,右边往左边数

4)数据类型转换

age = "4"
money = "5"
将字符串转化为数字 int(str)
print(int(age)*int(money)) #20

age = 4
money = 5
将数字转化为字符串 str
print(str(age)*str(money)) #45

5)复制

可以通过索引复制,切片复制

str1 = "cainaio 666"
str2 = str1[0:]

2、字符串的内置函数操作

str1  = "my baby i love you "
print(len(str1))                       #  获取字符串长度
print(str1.upper())                    #小写转大写
print(str1.upper().lower())            #在转为小写
str2 = "hapyy NEW Year"
print(str2.swapcase())                 #大小写转化

1、查找 :用find

当查找不到find会报-1

if_snow = str1.find("wo")
print(if_snow)                        #  -1

当find找到指定元素的时候,返回它的索引值,必须是连续的字符

if_snow1 = str1.find("i")
print(if_snow1)

2、index 和find 用法一样

不同的是 index 找不到时会报 ValueError

 if_snow3 = str1.index("wo")
print(if_snow3)

3、替换replace 字符串一旦定义 除非重新赋值 不然不会发生变化

dl_name = "本本"
new_dl = dl_name.replace("本","哈")     
print(dl_name)    #本本
print(new_dl)     #哈哈
new_dl2 = dl_name.replace("本","哈",1)   
print(new_dl2)    #哈本

4、统计 count

str3 = "我爱你 我爱你 我爱 我爱你 我爱你"
print(str3.count("爱"))       #5

5、join 字符串拼接 正规方式 代替 +

s1 = "wo "
s2 = "我的理想"
s3 = "hhh "
print("".join([s1,s2,s3]))       #wo 我的理想hhh 

6、字符串分割 split

a = "hello world"
b = a.split("w")            #以w 为界限分割
print(b)                    #['hello ', 'orld ']
c = a.split(" ")            #['hello', 'world']
print(c)                    #['hello', 'world']
a1 = "hello/world/soft/sfh"
b1 = a1.split("/")
print(b1)                 #['hello', 'world', 'soft', 'sfh']

7、strip 用的多 去掉左右两边的指定字符

str3 = " 我爱你 "
print(str3.strip(' 你'))             # 我爱

8、判断字符串是不是正整数

a = '2345a678'
print(a.isdigit())          # f

四、列表的操作

1、列表 存储很多数据

列表可以存储不同数据类型的数据

字符串不可以修改

列表可以被修改,可变的数据类型

2、列表的操作

1、添加

1)、添加一个元素append

list1 = ["小米"]
#添加新的元素 , append 一次只添加一个 添加到最后
list2 = list1.append("小红")
#打印list1
print(list1)                #结果['小米', '小红']
# 注意: 如果打印list2  报None
print(list2)               #None

2)添加多个元素 extend

extend 添加多个元素 添加到最后

list1.extend(["小明","小黑","小白","小美"])       #添加的是列表所以用【】
print(list1)          #结果:['小米', '小红', '小明', '小黑', '小白', '小美']
#注意:不可以连续使用2次append
# l1 = list1.append("小区").append("很好")
# print(list1)         #报错

3)、向指定的位置添加 insert

输入索引及内容 list1.insert(索引值,内容)

list1.insert(1,"小小")
print(list1)  #['小米', '小小', '小红', '小明', '小黑', '小白', '小美']

2、删除

1)删除指定的值 remove

list1.remove("小小")
print(list1)  #['小米', '小红', '小明', '小黑', '小白', '小美']

2)删除指定的索引 pop

list1.pop(2)
print(list1)  #['小米', '小红', '小黑', '小白', '小美']

#pop()没有参数时默认删除最后一个
list1.pop()
print(list1)   #['小米', '小红', '小黑', '小白']
a = list1.pop(1)
print(a)  #小红   可以用变量接收

3)删除所有的元素 clear

list1.clear()
print(list1)  #[]

4)del 不要去用

del list1
print(list1) #NameError: name 'daolaos' is not defined  没有定义
# del 从内存中全部清空

3、修改

list3 = ['小米', '小红', '小黑', '小白']
list3[1] = ['花花']
print(list3) #['小米', ['花花'], '小黑', '小白']

4、列表的函数

1)index 获取索引

print(list3.index("小米"))  #0

2)count 获取出现的次数

list4 = ['小米', '小红', '小黑', '小白']
print(list4)
print(list4.count('小')) #4

3)逆序 reverse 直接修改原来的变量

list4.reverse()
print(list4)  #['小白', '小黑', '小红', '小米']

3)逆序2 重新创建一个变量 不会修改原来的变量

a = list4[::-1]
print(list4)  #['小白', '小黑', '小红', '小米']
print(a)      #['小米', '小红', '小黑', '小白']

4)排序 sort

list5 = ["p","k","l","a"]
list5.sort()
print(list5)  #['a', 'k', 'l', 'p']

数学排序

list1 = [1,3,5,6,2,8,7]
list1.sort()
print(list1)#[1, 2, 3, 5, 6, 7, 8]
list1.sort(reverse = True)           #reverse:反转、逆序
print(list1) #[8, 7, 6, 5, 3, 2, 1]

五、字典Dict

1、列表 存储多个数据,想获取单个元素可读性不强

zxx_info=[zxx,17,"女","西游记","还珠格格","庆余年","彭于晏","宝强"]
如果要获取最喜欢的电视   获取麻烦   可读性差

字典 存储多个数据,想获取单个元素 用字典

有标记位 key : value

key :key值不可变类型 唯一 一般用字符串表示key值

字典表示:dict1[key值] 直接获取

zxx_info = {"name":"祝","age":17,"fava_tv":"西游记","sex":"女","most_tv":"还珠格格"}
age  =  zxx_info["age"]
print(age)

2、字典操作

获取字典的长度 len

zz_info = {"name":"祝","age":17,"fava_tv":"西游记","sex":"女","most_tv":"还珠格格"}
print(len(zz_info))     #5

总结:

字典是无序的数据类型

那些有序 :list 有顺序,索引 字典没有索引

print(zz_info(2))  报错

3、字典可变类型 可进行增删改查

1)增

添加最喜欢的明星

zz_info = {"name":"祝","age":17,"fava_tv":"西游记","sex":"女","most_tv":"还珠格格"}
zz_info["mingx"] = ["周杰伦","五月天"]
print(zz_info)  #{'name': '祝', 'age': 17, 'fava_tv': '西游记', 'sex': '女', 'most_tv': '还珠格格', 'mingx': ['周杰伦', '五月天']}

2)修改

zz_info["mingx"] = "小妹"
print(zz_info)    #{'name': '祝', 'age': 17, 'fava_tv': '西游记', 'sex': '女', 'most_tv': '还珠格格', 'mingx': '小妹'}

字典里面的单引号双引号没有区别 自动使用单引号

使用元素修改和元素添加的方式是一样的

当key值不存在是就添加,key值存在时,修改就会覆盖原来的数据

3)删除

随机删除

zz_info.popitem()    #不带参数
print(zz_info)      #{'name': '祝', 'age': 17, 'fava_tv': '西游记', 'sex': '女', 'most_tv': '还珠格格'}

删除指定的key

zz_info.pop("age")

print(zz_info)  #{'name': '祝', 'fava_tv': '西游记', 'sex': '女', 'most_tv': '还珠格格'}

其他方式 清除

zz_info.clear()

print(zz_info)                  #{}

通过元组存储数据

zz_info.items()
print(zz_info.items())#   dict_items  ([('name', '祝'), ('fava_tv', '西游记'), ('sex', '女'), ('most_tv', '还珠格格')])

获取所有的key

print(zz_info.keys())    #dict_keys(['name', 'fava_tv', 'sex', 'most_tv'])

获取所有的value

print(zz_info.values())   #dict_values(['祝', '西游记', '女', '还住格格'])

总结

字典: 1、无序 可变的类型

2、key 唯一不可变类型 value随意

3、增删改

4、items()以元组形式存储数据, keys()获取key ,values()获取value

六、元组 tuple

1、元组和列表

列表表示

list1 = ["小米","小红","哈哈","喜喜"]

元组表示

tuple1  = ("小米","小红","哈哈","喜喜")
print(tuple1)

2、获取

获取某一个元素,索引 和列表一样

获取多个元素,切片,和列表一样

3、元组 可以添加修改删除?

不能  只能重新赋值,因为元组不可变

4、元组中含有列表 可以添加删除修改吗

tuple2 =  ("小米","小红","哈哈","喜喜",["小花","宝宝","嘿嘿"])
tuple2[4] = ["风","雨","电"]
print(tuple2)#报错  不可以修改

5、修改元组中的列表

tuple2[4][0] = ["风"]
print(tuple2)  #('小米', '小红', '哈哈', '喜喜', [['风'], '宝宝', '嘿嘿'])

元组的不可变性 是相对的 不是说 里面的所有的内容完全不变

只要看修改的索引的前面是不是一个可变类型

例如:

tuple3 =  ("小米","小红",{'name': '祝', 'age': 17, 'fava_tv': '西游记'})


#索引前是元组  肯定不可修改
tuple3[2] = " 呵呵"


#tuple[2]是字典  可变
tuple3[2]["name"] = "呵呵"
print(tuple3)  #('小米', '小红', {'name': '呵呵', 'age': 17, 'fava_tv': '西游记'})


zx = [ "小米","小红",("哈哈","喜喜")]
#zx[2]前面是列表  可变
zx[2] = "呵呵"
print(zx)#  ['小米', '小红', '呵呵']


#元组不可变
zx[2][1] = "hehe"
print(zx)  报错


空元组
tuple4 = ()
print(tuple4)  #是元组


注意:
1个元素的元素表示,不是一个元组,而是去掉括号后原始的数据类型
如果想表示一个元素的元组  在元素后面加一个逗号,
tuple4_1 = (2)
print(tuple4_1) # <class 'int'>
tuple4_2 = (2,)
print(tuple4_2)  #是元组
print(len(tuple4_2))  #1 长度为1

七、集合 set

set1 = {"小米","小红","哈哈","喜喜"}
print(set1)  #{'喜喜', '小红', '小米', '哈哈'}

1、集合不是键值对 是无序的 不能通过索引获取

主要作用:重复的元素直接丢掉

set2 = {"小米","小红","哈哈","喜喜","小米","小红","哈哈","喜喜"}
print(len(set2))  #4

2、集合转换成列表

set2 = list(set(["小米","小红","哈哈","喜喜","小米","小红","哈哈","喜喜"]))
print(set2) #['喜喜', '小红', '小米', '哈哈']

总结:

元组: 1、一个元素的元组必须要加, 2、元组不可变和列表的可变性

集合: 主要 1、去重 2、无序

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容