Python·Summary of important knowledge points in notes
摘要:
本文主要是对照平时经常用到的Python知识点,结合一些实例而梳理,用于温故知新不断加深印象。也算是对这门语言的一个复盘总结与回顾。Python的详细语法请参阅官网或耳熟能详的在线网站。
目录
Python·Summary of important knowledge points in notes
一、python position and function。
二、Setting up the Python environment
一、python position and function。
二、Setting up the Python environment
Python Release Python 3.8.1 | Python.org
- 什么是转义字符呢?
- 为什么需要转义字符?
- 当字符串中包含换行、回车,水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符当字符串中包含换行、回车,水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符.
#实例
import keyword
print(keyword. kwlist)
#运行结果
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
#实例
name='马丽亚”
print(name)
print('标识',id(name))
print('类型',type(name))
print('值',name)
#运行结果
马丽亚
标识2633937837872
类型<class 'str'>'
值 马丽亚
10.变量的多次赋值。
#实例
name= '马丽亚'
name='楚溜冰'
print(name)
#运行结果
楚溜冰
11.Python中常见的数据类型
12.数据类型-整数类型
#实例
nl=90
n2=-76
n3=0
print(nl, type(n1))
print(n2, type(n2))
print(n3, type(n3))
#整数可以表示为二进制,十进制,八进制,十六进制
print('十进制',118)
print('二进制',Ob10101111) #想要输出二进制前面必须加0b
print('八进制',0o176) #八进制以00开头
print('十六进制',Ox1EAF)
#运行结果
90 <class'int'>
-76 <class 'int'>
0 <class' int'>
十进制 118
二进制 175
八进制126
十六进制7855
验证:打开windows系统Dos窗口键入calc打开程序计算器
13.数据类型浮点类型
#浮点类型
#浮点数整数部分和小数部分组成
#浮点数存储不精确性
#使用浮点数进行计算时,可能会出现小数位数不确定的情况
print(1.1+2.2)#3.30000000000
print(1.1+2.1)#3.2
解决方案
导入模块decimal
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))#3.3
#实例
a=3.14159
print(a,type(a))
nl=1.1
n2-2.2
print(nl+n2)
#运行结果
3.14159 <class ' float'>
3.3000000000000003
解决浮点不精确
from decimal import Decimal
print (Decimal (' 1. 1')+Decimal (' 2. 2'))
#运行结果
3.3
浮点数与浮点数相加就会出现这个问题,二进制的底层逻辑问题
#实例
fl=True
f2=False
print (fl, type(f1))
print (f2, type (f2))
#布尔值可以转成整数计算
print(fl+1)
#21+1的结果为2 True表示1
print(f2+1)
#10+1的结果为1,False表示0
#运行结果
True <class'bool' >
False <class 'bool' >
2
1
14.数据类型布尔类型
str1='人生苦短,我用Python'
str2="人生苦短,我用Python"
str3=""人生苦短,我用Python""
str4=""人生苦短,
我用Python""
#实例
strl='人生苦短,我用Python'
str2="人生苦短,我用Python" #单引号和双引号只能在一行实现
str3="""人生苦短,
我用Python"""
str4
='''人生苦短,
我用Python''' #而三引号和三单引号可以多行实现
print(strl,type(str1))
print(str2,type(str2))
print(str3,type(str3))
print(str4,type(str4))
#运行结果
人生苦短,我用Python <class'str'>
人生苦短,我用Python <class'str'>
人生苦短,
我用Python <class'str'>
人生苦短,
我用Python <class'str'>
16.类型转换_str()函数与int()函数
#实例1
name='张三'
age=20
print(type(name),type(age))#说明name与age的数据类型不相同
print('我叫'+name+'今年,'+age+'岁')#当将str类型与int类型进行连接时,报错,解决方案,类型转换
#解决方案
print('我'+name+'Af,'+str(age)+'岁')
#将int类型通过str()函数转成了str类型
#运行结果(报错实例)1
<class'str'> <class 'int' >
Traceback(most recent call last):
File"E:/vippython/chap2/demo8.py",line 8,in(module>
print('我'+name+'今年,'+age+'')
TypeError:can only concatenate rstr(not"int")to str
#运行结果(解决实例)1
<class
'str'> <class 'int' >
我叫张三今年,20岁
#实例2
print('-----str()将其它类型转成str类型-----')
a=10
b=198.8
c=False
print(type(a),type(b),type(c))
print(str(a),str(b),str(c),type(str(a)),type(str(b)),type(str(c)))
#运行结果2
---str()将其它类型转成str类型----
<class'int'> <class'float'> <class'bool'>
10 198.8 False <class'str'> <class'str'> <class'str'>
#实例3
print('--------int()将其它的类型转int类型------')
s1='128'
f1=98.7
s2='76.77'
ff=True
s3='hello'
print(type(s1),type(f1),type(s2),type(ff),type(s3))
print(type(s1),type(fl),type(s2),type(ff),type(s3))
print(int(sl),type(int(s1))) #将str转成int类型,前提是字符串为数字串
print(int(f1),type(int(f1))) #float转成int类型,截取整数部分,舍掉小数部分
#print(int(s2),type(int(s2))) #将str转成int类型,报错,因为字符串为小数串
print(int(ff),type(int(ff)))
#print(int(s3),type(int(s3))) #将str转成int类型时,字符串必须为数字串(整数),非数字串是不允许转换
#运行结果3
-----int()将其它的类型转int类型----
<class'str'> <class'float'> <class'str'> <class'bool'> <class'str'>
128 <class
'int'>
98 <class 'int'>
1
<class ' int'>
#实例4
print('-----float()函数,将其它数据类型转成float类型')
s1='128.98'
s2='76'
ff=True
s3='hello'
i=98
print(type(s1),type(s2),type(ff),type(s3),type(i))
print(float(sl),type(float(s1)))
print(float(s2),type(float(s2)))
print(float(ff),type(float(ff)))
#print(float(s3),type(float(s3))) #字符串中的数据如果是非数字串,则不允许转换
print (float (i), type (float (i)))
#运行结果4
128.98 <class float'>
76.0 <class 'float'>
1.0 <class 'float'>
98.0 <class ' float' >
18.Python中的注释
# coding:gbk
# coding:utf-8 中文编码声明注释,语句需要写在文档最前面
#输入功能(单行注释)
print('hello')
'''嘿嘿
,我是
多行注释'''
19.input函数的使用
#实例
#输入函数input
present=input('大圣想要什么礼物呢?')
print(present,type(present))
#运行结果
大圣想要什么礼物呢? 定海神针 #后面的定海神针手动在运行结果中输入
定海神针<class 'str'>
20.input函数的高级使用
#练习题题干
#从键盘录入两个整数,计算两个整数的和
#实例
a=input('请输入一个加数:')
a=int(a) #将转换之后的结果存储到a中
b-input('请输入另一个加数:')
b=int(b)
print(type(a),type(b))
print(a+b)
#运行结果
请输入一个加数:10 #后面的10这个要求输入的加数手动在运行结果中输入
请输入另一个加数:20 #后面的20这个要求输入的加数手动在运行结果中输入
1020 #没转数据类型的错误值
30 #转int数据类型后的正确值
#从运行结果得知,10加20应为30,但实际输出结果为1020,原因分析是数据类型问题,数据类型为str,因此+号就变成了连接作用
#当然也可以直接把转换写进去,写成嵌套的形式
a=int(input('请输入一个加数:'))
#a=int(a)
#将转换之后的结果存储到a中。这句目前为注释掉
b=int(input('请输入另一个加数:'))
#b=in(b) #这句目前为注释掉
print(type(a),type(b))
print(a+b)
21.运算符_算术运算符
#标准运算符实例1
print(1+1)#加法运算
print(1-1)#减法运算
print(2*4)#乘法运算
print(1/2)#除法运算
print(11/2)#除法运算
print(11//2)#5 整除运算
#运行结果1
2
0
8
0.5
5.5
5
#取余运算符实例(也称取模运算)2
print(11%2)#取余运算
#运行结果2
1
#幂余运算符实例(也称取模运算)3
print(2**2)#表示的是2的2次方
print(2**3)#表示的是2的3次方 2*2*2
#运行结果3
4
8
#实例
print (9//4) #2
print (-9//-4) # 2 负负得正
print (9//-4) #-3 9/-4等于2.2多少,2除完还有余数上10,继续2。因此按照算数运算符的整数运算规则:一正一负向下取整,所以是-3.
print (-9//4) # -3
print(9%-4) #-3 公式 余数=被除数-除数*商 9-(-4)*(-3) 9-12--> -3
print(-9%4) #3
-9-4*(-3) -9+12--> 3
#运行结果
2
2
-3
-3
-3
3
22.运算符_赋值运算符
#赋值运算符,运算顺序从右到左
#实例1
a=3+4 #运算逻辑:先将等号右侧计算结果,然后再将结果赋值给a
print(a)
#运行结果1
7
#链式赋值
#实例2
a-b=c=20
print(a,id(a))
print(b,id(b))
print(c,id(c))
#运算结果2
20 140708881340672 #值都是20,标识都相同,标识就是内存地址,可理解为a值的唯一识别码
20 14070888134067
2 #它的type肯定是Int,value都是20
20 140708881340672 #所以这里的链式赋值只有一个整数对象,但却有abc三个引用在指向这个位置上,这就是所说的链式赋值
#参数赋值
实例1
print('-------支持参数赋值-----)
a=20
a+=30
#相当于a=a+30
print(a)
a-=10
#相当于a=a-10
print(a)
a*=2
#相当于a=a*2
print(a)
print(type(a)) #得出结论数据类型为int
a/=3
print(a)
print(type(a)) #得出结论数据类型为float
a//=2
print(a) #float类型a和2进行整除,结果还是float类型
a%=3
print(a)
#运行结果1
50
40
80
<class 'int'>
26.666666666666668
<class 'float'>
13.0
<class 'float'>
1.0
#支持系列解包赋值
a,b,c=20,30,40 #简单讲就是分别赋值,20赋值给a、30赋值给b,40赋值给c(要求等号两边相同,否则会报错)
#实例2
print('-----解包赋值-------')
a,b,c=20,30,40
print(a,b,c)
#a,b=20,30,40 报错,因为左右变量数的个和值的个数不对应
#运行结果2
------解包赋值-----
20 30 40
解包赋值好处:在其他编程软件中,如果要实现两个变量的交换,可能需要中间变量,但python中一句代码就可以
#实例3
print('-------交换两个变量的值-------')
a,b=10,20
print('交换之前:',a,b)
#交换
a,b-b,a print('交换之后:',a,b)
#运行结果3
-----交换两个变量的值-----
交换之前:10 20
交换之后:20 10
23.运算符-比较运算符
#实例1
#比较运算符,比较运算符的结果为bool类型
a,b=10,20
print('a>b吗?',a>b) #False
print('a<b吗?',a<b) #True
print('a<=b吗?',a<=b) #True
print('a>=b吗?',a>=b) #False
print('a==b吗?',a==b) #False #一个=称为赋值运算符,==称为比较运算符
print('a!=b吗?',a!=b) #True
#运行结果
a>b吗?False
a<b吗?True
a<=b吗?True
a>=b吗?False
a==b吗?False
a!=b吗?True
'''一个变量由三部分组成,标识,类型,值
比较的是值还是标识呢? 比较的是值
比较对象用is #id标识
'''
a=10
b=10 #a和b赋值都是10,它会现在内存当中看下有没有10这个值,如果有就不再新创建了,它会把标识也叫做和10赋值的标识一样的,同样也会指向这个标识
print(a==b)
#True 说明,a与b的value 相等
print(a is b) #True 说明,a与b的id标识,相等
#以下代码本节之前没有,后面会有
#实例2
lst1=[11,22,33,44]
lst2=[11,22,33,44]
print(lstl==lst2)
#value
-->True
print(lstl is lst2) #id
-->False
print(id(1st1))
print(id(1st2))
print(a is not b)#False a的id与b的id是不相等的吗?运行结果是false,为不相等
print(lstl is not lst2)#True a的id与b的id是不相等的吗?运行结果是true,为相等
#运行结果
2672524714432
2672525955712 #得出结论两个id标识并不相同
False
True
24.运算符_布尔运算符
#实例
#布尔运算符
a,b=1,2
print('-----and并且-------')
print(a==1 and b==2) #True True and True-->True
print(a==1 and b>2) #False True and False-->False
print(a!=1 and b==2)
#False False and True-->False
print(a!=1 and b!=2) #False False and False-->False
print('-----or或者-------')
print(a==1 or b==2) #True or True -->True
print(a==1 or b<2) #True or False -->True
print&#