Python基础
Posted sleepdragon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础相关的知识,希望对你有一定的参考价值。
.pyc是什么?
??执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。如果pyc文件与py文件修改时间相同,才会读取pyc文件,否则,Python就会读原来的py文件。
??其实并不是所有的.py文件在与运行的时候都会差生.pyc文件,只有在py文件import相应的.py文件的时候,并且被import的.py文件没有执行过,才会生成相应的.pyc文件
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
数据类型
- 数字
- int(整型)
- float(浮点型)
- complex(复数)
- 布尔值(0 or 1)
- 字符串
注: Python存在小数池: -5~256
>>> b=257 #257,内存地址不同
>>> a=257
>>> id(a)
57594912
>>> id(b)
57594960
>>> b=256 #256,内存地址相同
>>> a=256
>>> id(b)
259737840
>>> id(a)
259737840
三元运算
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
字符串操作
特性:不可修改
string='my Name is ZhuYuLiang'
string.capitalize() #把字符串的第一个字符大写,其余小写
输出:'My name is zhuyuliang'
string.center(30,'-') #返回一个原字符串居中,并使用 空格[默认] 填充至长度width的新字符串
输出:'----my Name is ZhuYuLiang-----'
string.count('u') #返回'u'在string里面出现的次数
输出:2
string.endswith('ang') #检查字符串是否以ang结束
输出:True
string.find('u') #检测u是否包含在string中,返回最左面索引,不存在返回-1
输出:13
string.rfind('u') #检测u是否包含在string中,返回最右面的索引,不存在返回-1
输出:15
string.index('c') #跟find()方法一样,只不过如果str不在string中会报一个异常.
输出:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
string.isalnum() #如果string至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
输出:False #因为有空格
string.isalpha() #如果string至少有一个字符并且所有字符都是字母则返回True,否则返回False
输出:False #因为有空格
string.isnumeric() #如果string中只包含数字字符,则返回True,否则返回False
输出:False #因为有空格
'-'.join('123') #以任意字符,作为分隔符,将seq中所有的元素(字符串表示)合并为一个新的字符串
输出:'1-2-3'
string.rjust(30,"*") #返回一个原字符串右对齐,并使用*填充至长度width的新字符串
输出:'*********my Name is ZhuYuLiang'
string.ljust(30,"*") #返回一个原字符串左对齐,并使用*填充至长度width的新字符串
输出:'my Name is ZhuYuLiang*********'
string.lower() #转换string中所有大写字符为小写.
输出:'my name is zhuyuliang'
max(string) #返回字符串string中最大的字母,是根据ASCLL码来排序的。
输出:'y'
min(string) #返回字符串str中最小的字母,是根据ASCLL码来排序的。
输出:' ' #空格的ASCLL码排在第32位
string.replace('u','Z',2) #把string中的u替换成Z,2替换次数。
输出:'my Name is ZhZYZLiang'
string.split(" ",2) #以" "为分隔符切片string,'2'切割次数,分割完为列表。
输出:['my', 'Name', 'is ZhuYuLiang']
string.startswith('N',3,6) #检查字符串是否是以N开头,是则返回True,否则返回False。3~6在指定范围内检查.
输出:True
string.swapcase() #翻转string中的大小写
输出:'MY nAME IS zHUyUlIANG'
string.upper() #转换string中的小写字母为大写
输出:'MY NAME IS ZHUYULIANG'
string.zfill(30) #返回长度为30的字符串,原字符串string右对齐,前面填充0
输出:'000000000my Name is ZhuYuLiang'
string.strip() #移除元素两侧的空格, ,
等都可以去除掉
>>> str='
abc
'
>>> str.strip()
'abc'
string.lstrip() #移除左面元素的空格
>>> a='
c
b
'
>>> a.lstrip()
'c
b
'
string.rstrip() #移除右面元素的空格
>>> a='
c
b
'
>>> a.rstrip()
'
c
b'
len(string) #统计一个字符串长度
输出:21
string.isdigit() #判断字符串是否只由数字组成。
输出:False
string.title() #所有单词的首字母大写其余小写。
输出:'My Name Is Zhuyuliang'
string.isidentifier #判断是否是一个合法的标识符,变量名。
输出:False #因为有空格
string.isupper #是否全部为大写。
输出:False
Maketrans #加密字符串
>>> intab='mZL' #这是具有实际字符的字符串。
>>> outtab='123' #这是具有相应映射字符的字符串,需要一一对应,数量不能有误差
>>> trantab=str.maketrans(intab,outtab)
>>> string.translate(trantab)
'1y Name is 2huYu3iang' #结果被定义好的规则替换了
列表
列表切片是从左到右来切的。
str.insert(‘你要插入那个索引前面就写什么索引‘,‘插入内容‘)
insert和append都没有返回值,不用在单独赋值。
sort排序是根据ASCLL码来排序的。
元组
字典
bytes与str的转换
encode,decode
注:Python3,encode默认是utf-8。
copy
以上是关于Python基础的主要内容,如果未能解决你的问题,请参考以下文章