Python 基础
宏观上:python2 与 python3的区别:
- python2 源码不标准,混乱,重复代码过多
- python3 统一标准,去除重复代码
Python特点
- 编译型:
- 一次性将所有程序编译成二进制文件。
- 缺点:开发效率低,不能跨平台。
- 优点:运行速度快。
- 例如:C,C++等等。
- 解释型:
- 优点:开发效率高,可以跨平台。
- 缺点:运行速度慢。
- 例如:python,php等等。
python是动态解释型的强类型定义语言(面试)
最早的ascii只有7位,为了以后的扩展,多加一位,留给扩展使用。(面试)
万国码Unicode最开始16位,但是中文16位写不下(汉字大概9万多),就给了32位,但占用的资源过多。
Unicode 升级 utf-8 utf-16 utf-32
8位 = 1字节bytes
utf-8一个字符最少用8位去表示,英文用8位 一个字节
欧洲文字用16位去表示 两个字节
中文用24位去表示 三个字节
utf-16一个字符最少用8位去表示,英文用8位 一个字节
GBK中国人自己发明的,一个中文用两个字节16位表示。
逻辑计算
优先级,()> not > and > or
- x or y x True,则返回x
print(1 or 2) # 1
print(3 or 2) # 3
print(0 or 2) # 2
print(0 or 100) # 100
print(2 or 100 or 3 or 4) # 2
print(0 or 4 and 3 or 2) - x and y x True,则返回y
print(1 and 2)
print(0 and 2)
print(2 or 1 < 3)
print(3 > 1 or 2 and 2)
数据类型
int 1,2,3用于计算
bool:True,False,用户判断。
str:存储少量数据,进行操作
‘fjdsal’ ‘二哥’,’`13243’,‘fdshklj’
‘战三,李四,王二麻子。。。。’
list:储存大量的数据。
[1,2,3,‘泰哥’,‘12353234’,[1,2,3]]
元祖(Tuple):只读。
(1,2,3,‘第三方’,)
dict:字典{‘name’:‘云姐’,‘age’:16}
字典{‘云姐’:[],‘二哥’:[200,200,200,。。。。。。]}
集合:{1,2,34,‘asdf’}
格式化输出(只涉及最基础的格式)
print('%d,%s'%(age,name))
- %d 输出int型数据
- %s 输出str型数据
- %% 输出单个%
format的三种玩法 格式化输出
s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白')
print(s)
name = input('请输入名字:')
s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl')
print(s)
name = input('请输入名字:')
s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl')
print(s)
输出:
字符串操作
s = 'miamor'
s = s.capitalize() #首字母大写
print(s)
输出:Miamor
s1 = 'Miamor'
s2 = s1.upper() #全部最大化
s3 = s1.lower() #全部最小化
print(s2,s3)
输出:MIAMOR miamor
s1 = 'Miamor'
s2 = s1.swapcase() #大小写反转
print(s2)
输出:mIAMOR
s1 = 'what's your name'
s2 = s1.title() #将每个单词首字母大写 注意:只要是中间那特殊字符隔开的就可以,包括数字
print(s2)
s3 = 'what's*your_name'
s4 = s3.title()
print(s4)
输出:
s1 = 'alexWUsir'
s2 = s1.center(20,“#”) #20是总文本长度,s1居中在20的长度中,#是填充符号,可以不填,不填的话,空格填充
print(s2)
输出:#####alexWUsir######
s1 = 'alexWUsir'
s2 = s1.startswith('a')
s3 = s1.startswith('e',2,5) #判断第三位和第六位是否是以e开头
print(s2,s3)
输出:True True
s = 'alexWUsir'
s2 = s.find('A') #find 通过元素找索引,找不到返回-1
s3 = s.index('A') #index通过元素找索引,找不到报错
print(s3,type(s2))
#字符串切分split str ---->list
s = ';alex;wusir;taibai'
l = s.split('a') #用a做切分
print(l)
输出:[’;’, ‘lex;wusir;t’, ‘ib’, ‘i’]
# s = 'alexWUsir%'
# s9 = s.strip('%') # strip 默认删除前后空格
# print(s9)
# s = ' *a%lexWUsi* r%'
# s91 = s.strip(' %*') #空格、*、%都可以去除
# print(s91)
输出:alexWUsir alexWUsir
#字符串替换
s = '来看待街坊邻居复合大师街坊法好的撒见客户'
s11 = s.replace('街坊','老王',1) #后面的数字标识替换几次,不写的话,默认全部替换
print(s11)
输出:来看待老王邻居复合大师街坊法好的撒见客户
#索引切片,顾头不顾尾
s = 'ABCDEFGHI'
s0 =s[:]
s1 = s[0:5]
s2 = s[0:5:2]
s3 = s[5:0:-1]
s4 = s[5:0:-2]
s5 = s[::-1]
print(s0,s1,s2,s3,S4,s5)
输出:ABCDEFGHI ABCDE ACE FEDCB FDB IHGFEDCBA