配色: 字号:
基础数据类型
2020-12-03 | 阅:  转:  |  分享 
  
基础数据类型2020-12-02演讲人01计算机基础变量就是将一些运算的中间结果暂存到内存中,以便后续代码调用规范必须由数字、字母和下划线
任意组合,且不能数字开头不能是Python中的关键字变量具有可描述性约定俗成是不要用中文和拼音约定俗成是不要太长计算机基础常量Py
thon中没有规定的常量,但程序员习惯性把变量名全部大写当作是常量01方便自己,方便他人更好的理解代码计算机基础0302注释多行注
释:''''''被注释内容''''''或者是\"\"\"被注释内容\"\"\"单行注释:#+被注释行02小知识点等待用户输入小知识点01将输入
的内容赋值给了input前面的变量用户交互input('''')02input括号里面的变量类型都是字符串0303数据类型划
分数据类型划分可变数据类型列表(list)、字典(dict)、集合(set)。可变数据类型也称为不可哈希。不可变数据类型元组(
tupe)、布尔值(bool)、整数型(int)、字符串(str)。不可变数据类型也称为可哈希。04小知识点小知识点深浅copye
numerateD小数据池概念C“=”、“==”与“is”的区别BA0102“=”:赋值把后面的值赋给前面“==”
:比较前后的值是否相等小知识点“=”、“==”与“is”的区别0304“is”:比较的是前后的变量内存地址id:显示的是内
存地址小知识点小数据池概念在一定范围内当多个变量被赋值的是一个相同的数值时,其占用的内存地址是一样的在一定范围内当多个变量被赋值的
是一个相同的数值时,其占用的内存地址是一样的int范围是-5-------256str没有什么具体准确的标准,暂时只发现两个规
律不能含有特殊字符s20还是同一个地址,s21以后都是两个地址在一定范围内当多个变量被赋值的是一个相同的数值时,其占用的内存
地址是一样的list列表、dict字典、tuple元组、set集合都没有小数据池概念小知识点enumerate枚举,对于一
个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
。对于赋值运算来说,值相同,内存地址也相同,改变其中一个,另一个也会改变。l2=copy.deepcopy(l1)#深
copy小知识点深浅copyl2=l1.copy()#浅copyl2=l1.copy()#浅copy对于浅
copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性
。所以对于copy来说,改变其中一个的第一层,另一个变量是不会变的,但是从二层开始会同时改变。l2=copy.deepcopy
(l1)#深copy对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。05文件
操作文件操作f=open(...)是由操作系统打开文件,那么如果我们没有为open指定编码,那么打开文件的默认编码很明显是操作系统
说了算了,操作系统会用自己的默认编码去打开文件,在windows下是gbk,在linux下是utf-8。f=open(''文件路
径和文件名'',mode=''r/w/a/r+/w+/a+/rb/wb/ab/r+b/w+b/a+b'',encoding=''编码方式''
)带有''b''的是bytes类型(非文字文件,还有就是上传和下载)读文件的几种方法只写:w带+号的增加有附带功能,比如r+
代表在只读的情况下增加了写的功能,代表先读后写,其余的情况类似。f.seek(3)#按照字节定光标的位置f.s
eek(0)光标移动到最开始的地方f.seek(0,2)光标移动到最末尾的地方f.tell()#告诉你光标的
位置f=open(''文件路径和文件名'',mode=''r/w/a/r+/w+/a+/rb/wb/ab/r+b/w+b/a+b'',
encoding=''编码方式'')f.readable()#是否可读line=f.readline()#一行一行
的读line=f.readlines()#每一行当成列表中的一个元素,添加到list中f.truncate(4)
截取一段文件importosos.remove(''小护士班主任'')#删除文件os.rename(''小护士班主任.
bak'',''小护士班主任'')#重命名文件f=open(''文件路径和文件名'',mode=''r/w/a/r+/w+/a+/rb
/wb/ab/r+b/w+b/a+b'',encoding=''编码方式'')读文件的几种方法read方法content
=f.read()读一部分内容:read(n),指定读n个单位f.read(5)按照行读,每次执行readline
就会往下读一行content2=f.readline()readlines,返回一个列表,将文件中的每一行作为列表
中的每一项返回一个列表f.readlines()for循环最常用的f=open(''文件路径和文件名'',mod
e=''r/w/a/r+/w+/a+/rb/wb/ab/r+b/w+b/a+b'',encoding=''编码方式'')只写:w先将
源文件的内容全部清除,在写没有此文件,就会创建文件06基础数据类型初始基础数据类型初始整数型int字符串str布尔值
bool列表list元组tu字典dic基础数据类型初始0102集合set几种数据类型的相互转换基础数据类型初
始整数型int数字主要是用于计算,适用于各种数学运算操作类型bit_length()是计算数字转换成二进制后的最少位数,相当
于计算二进制数的长度索引切片基础数据类型初始字符串str字符串的其他操作索引索引即下标,就是字符串组成的元素从第一个开始,初始
索引为0以此类推。(用中括号[]来表示,负号代表倒着数,倒着数的时候从1开始)切片通过索引(索引:索引:步长)截取字符串的一段,形
成新的字符串(原则就是顾头不顾腚)。(用中括号[]来表示)字符串的其他操作字符串首字母大写字符串.capitalize()字符串的
其他操作字符串全大写字符串.upper()字符串的其他操作字符串全小写字符串.lower()字符串的其他操作大小写翻转字符串.sw
apcase()字符串的其他操作每个隔开(空格,特殊字符或者数字)的单词首字母大写字符串.title()字符串的其他操作内同居中
,总长度,空白处填充字符串.center(30,''+'')字符串的其他操作默认将一个tab键变成8个空格,如果tab前面的字符长度
不足8个,则补全8个,#如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个字符串.expandt
abs()字符串的其他操作计算字符串长度len(字符串)字符串的其他操作判断是否以...开头,返回值是bool值字符串.sta
rtswith(''gu'')字符串的其他操作判断是否以...结尾,返回值是bool值字符串.endswith(''an'')字符串
的其他操作寻找字符串中的元素找索引,找到输出索引数,找不到返回-1从左向右,找到第一个就停止了字符串.find(''i'')字符
串的其他操作寻找字符串中的元素找索引,找到输出索引数,找不到报错从左向右,找到第一个就停止了字符串.index(''i'')字符
串的其他操作默认删除前后空格()里有就可以删除什么rstrip只删除右边的lstrip只删除左边的字符串.strip(
)字符串.rstrip()字符串.lstrip()字符串的其他操作计数器,计算某元素在字符串出现的次数字符串.count
('''')字符串的其他操作以什么分割,最终形成一个列表此列表不含有这个分割的元素字符串.split('''')字符串的其他操作替换,默认
的是替换全部字符字符串.replace(老字符,新字符,替换几个老字符)格式化输出formats=''我叫{0},今年{1
},爱好{2},再说一下我叫{0}''.format(name,36,''girl'')s=''我叫{},今年{},爱好{},再说一下
我叫{}''.format(''太白'',36,''girl'',''太白'')s=''我叫{name},今年{age},爱好{hobby}
,再说一下我叫{name}''.format(age=18,name=name,hobby=''girl'')字符串的其他操作判断字符
串是否由字母或数字组成字符串.isalnum()字符串的其他操作判断字符串是否只由字母组成字符串.isalpha()字符串的其他操
作判断字符串是否只由数字组成字符串.isdigit()字符串的其他操作判断字符串是否全是大写字符串.isupper()字符串的其他
操作判断字符串是否全是小写字符串.islower()字符串的其他操作判断是否是空格字符串.isspace()字符串的其他操作判断
是否所有单词都是首字母大写,像标题字符串.istitle()基础数据类型初始布尔值bool就两种True和False0102
以[]括起来,每个元素以逗号隔开列表的基本操作基础数据类型初始列表list以[]括起来,每个元素以逗号隔开列表相比于字符串,不
仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是536870912个元素,64位python的限制是
1152921504606846975个元素。而且列表是有序的,有索引值,可切片,方便取值。列表的增列表.append(''需要
添加的元素'')列表.insert(索引数,''需要添加的元素)列表.extend(''可迭代对象'')把元素添加到列表的后面按照索引添
加元素,这里的索引是指元素添加到列表后所在的索引迭代增加,依次添加到列表的后面列表的删列表.pop(索引数)2014按照索引数删除
元素列表.remove(''元素'')2015按照元素删除del列表2016删除整个列表,会报错del列表[索引数]2017按索引
删除,也可以切片删除列表.clear()2018清空列表列表的改按索引改列表[索引数]=新元素切片改列表[索引数:索引数]
=新元素列表的其他操作计算列表的长度计数器,计算某元素在列表出现的次数len(列表)列表.count(''元素'')列表的排序列
表中,按元素找索引,找不到会报错正向排序反向排序反转列表.index(''元素'')基础数据类型初始元组tu用()表示,其实
是一种只读列表,可循环查询,切片切片后输出的还是元祖儿子不能改,孙子可能可以改基础数据类型初始字典dic字典是pyth
on中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定va
lue的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。字典
(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间
的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典的增字典的删字典的改字典的查字典的增字典[''键'']=值原
字典中没有时直接添加到原字典的后面;如果增加的内容在原来的字典中有这对键值,那么会对原来的键值进行覆盖修改。字典.setdefau
lt(''键'',''值'')在字典中添加键值对,如果只有键那对应的值是none;如果原字典中存在设置的键值对,则他不会更改或者覆盖
。字典的删01字典.pop(\"键\",''无key默认返回值'')pop根据key删除键值对,并返回对应的值,如果没有key则返回
默认返回值,可以有返回值02del字典删除整个字典,会报错03del字典[键]删除键值对04字典.popitem()随
机删除字典中的某个键值对,将删除的键值对以元祖的形式返回05字典.clear()清空整个字典字典的改字典[键]=值直接修改
键值对dic2.update(dic)将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中字典的查字典.keys(
)直接查键字典的查字典.values()直接查值字典的查字典.items()直接查键值对字典的查字典[键]直接查值字典的查字典.g
et(键,''可以设置没有此键时的返回值'')查值for循环foriindic:2014查键foriindic.key
s():2015查键foriindic.values():2016查值fork,vindic.items():2
017查键、查值集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的
键)的01基础数据类型初始集合的增删改查02集合set集合的其他操作03集合是无序的,不重复的数据集合,它里面的元素是可哈希的
(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的去重,把一个列表变成集合,就自动去重了关系测试,测试两组数据
之前的交集、差集、并集等关系集合的增删改查04020301集合的删除集合不能改集合的增集合的查A集合.update(''元素'')-
-迭代增加集合的增删改查集合.add(''元素'')集合的增B12集合.pop()--随机删除,有返回值集合.remove(元
素)--按元素删除集合的增删改查集合的删除34集合.clear()--清空集合del集合---删除集合
,会报错集合的增删改查集合的查只能用for循环查询集合的其他操作P6P5超集P4子集P3反交集P2差集P1并集交集集合的其他操作交
集set1&set2或者是set1.intersection(set2)集合的其他操作并集set1|set
2或者是set2.union(set1)集合的其他操作差集set1-set2或者是set1.difference
(set2)集合的其他操作反交集set1^set2或者是set1.symmetric_difference(set
2)set1.issubset(set2)20202022集合的其他操作010203子集set1<set2这两个相同,
都是说明set1是set2子集2021set2.issuperset(set1)20202022集合的其他操作010203超集se
t2>set1这两个相同,都是说明set2是set1超集2021int----strstr-----intint
-----bool基础数据类型初始几种数据类型的相互转换str---->liststr----boolbool-
----int基础数据类型初始几种数据类型的相互转换list----->strint----strstr(int)
所有的整数型数字都可以转换成字符串类型的数字str-----intint(str)字符串中只有数字才能转换成整数类型int
-----boolbool(int)非0输出的bool值都是True,只有0输出的是Falsebool-----int
int(bool)bool值True转换成整数型的只有1,bool值False转换成整数型的只有0str----bool
bool(str)只要输入的字符串非空,输出的bool就是True,空字符串输出的bool值是False,空格也算是有内容,不算空
str---->list字符串.split('''')以什么分割,最终形成一个列表此列表不含有这个分割的元素list----
->str字符串=''''.join(列表)07几种循环判断语句几种循环判断语句if2014while2015whi
leelse2016ifiinrange():2017range后面加的是数字范围,可以是切片08Py
thon2系列与Python3系列有哪些不同之处Python2系列与Python3系列有哪些不同之处STEP1STEP2STEP3
STEP4STEP5从宏观上考虑,Python2重复代码太多,错误率高,不够规范。Python崇尚的是语言简洁、优美、清晰。Pyt
hon3更加规范,重复代码少Python2默认的编码是ASCII码,无法正确识别中文,而Python3默认的代码是utf-8,能够
正确识别中文Python2中print打印时后面可以不用加(),但是Python3中print打印时必须加上(),否则会报错Pyt
hon2中有range和xrange(生成器),但是Python3中只有rangePython3中的input,在Python2中是raw_input09编码知识编码知识ASCII码unicode码utf-8码gbk码注意编码知识ASCII码一个字符用8位来表示,共1个字节编码知识unicode码相对于ASCII码是创新。有16位和32位的两种,现在大部分用的是32位来表示一个字符,共4个字节编码知识utf-8码是unicode码的升级版本,最少用8位来表示一个字符,英文时是8位来表示的,共1个字节,中文是用24位来表示的,共3个字节,欧洲其他国家文字是用16未来表示的,共2个字节。还有utf-16、utf-32编码知识gbk码中国人自己发明的。表示英文时是用8位来表示的,共1个字节,中文是用16位来表示的,共2个字节各个编码之间的二进制是不能互相识别的,会产生乱码Python3中str在内存中是用unicode编码编码知识注意文件的储存、传输,不能是unicode(只能是utf-8、utf-16、gbk、gb2312,ascii等)encode编码,如何将str-->bytes,()感谢聆听
献花(0)
+1
(本文系职场细细品原创)