Python学习总结【连载】(一)
2018.06.12 Juttachen
概述
+ 01 快捷键及第一个python程序“Hello world”
+ 02 python 基础语法
- 注释
- 标识符
- 关键字(保留字)
- 行与缩进
- 多行语句
+ 03 python标准数据类型
- Number 数字
- Str 字符串
- List 列表
- Tuples 元组
- Sets 集合
- Dict 字典
- *补充:字符转义及反转义*
*List, Tuples, Sets, Dict 没有详细讲,后面总结*
+ 04 进制的认识与转换
- 进制的认识
- 十进制与其他进制
- 二进制与其他进制
- python 与进制
+ 05 变量
- 变量的作用
- 声明变量
- python中变量变化的原理
+ 06 运算符
- 算数运算符
一、快捷键及第一个python程序“Hello world”
版本号常识
版本号 A.B.C
A: 表示语言做重大修改,一般不兼容之前的版本。
B: 在做功能修改的时候值增加
C: 在修复bug的时候值增加
1. 快捷键(基本通用)
ctrl+b 执行(sublime)或者编译(在其他软件)
ctrl+/ 单行注释
ctrl+c 复制
ctrl+v 粘贴
ctrl+s 保存
ctrl+shift+z 反撤销
ctrl+a 全选
ctrl+x 剪切
ctrl+n 创建新文档
2. 第一个python程序
print("Hello world!")
print是python中的内置函数,功能是在控制台打印括号中的内容。
高级用法:格式化打印
程序员一般用来自己快速检测一些程序,也有高级用法。
二、python 基础语法
1. 注释
注释是穿插在代码中的说明性文字,对于功能实现功能无任何作用,不会参与执行。
在写代码的时候要经常写注释,便于给人看。习惯注释是程序员的素质。
+ 单行注释:在注释的内容加 #
+ 多行注释:
1. 在每一行前面加#号
2. 使用三个单引号或三个双引号括起来
推荐多行注释用双引号。
2. 标识符
在开发中使用的所有的名字都是标识符(包括变量名,函数名,类名,对象名等)。
标识符硬性要求:
1. 由字母,数字,下划线组成
2. 数字不能开头
3. 不能是关键字(比如int,float)
# 例子
a2_ = 1
abc = 1
# a+b = 1 这种是表达式,多出+,会报语法错误(SyntaxError: can't assign to operator)
# 2d = 1 这种是数字开头,会报语法错误(SyntaxError: invalid syntax)
# for = 2 这种for是关键字,会报语法错误(SyntaxError:invalid syntax)
规范:
1. 要见名知意
2. PEP 8规范:变量名全部小写,如果名字是由多个单词组成,单词之间以下环线分开。
(补充:1. 其他语言中的驼峰式命名:如果名字由多个单词组成,第一个单词首字母小写,后边的每个单词第一个字母大写
2. python中大小写敏感,key 和 Key是不一样的)
cat_name =1 #PEP 8 python 专门命名用法
catName =1 #驼峰式 其他语言
3. 关键字(保留字)
在python中有自己独特功能的一些单词,程序员在使用标识符的时候,不能使用关键字。
(补充:模块有内置和开源之分,也可以自定义。内置模块不用额外做下载工作。)
#关键字表
import keyword #导入内置keyword模块
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', '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']
4. 行与缩进
缩进
在python中语法对于缩进有严格的规范。同一级的代码要写在一个缩进下。(缩进->空格和制表符tab)
abc=1 #如果abc前多了空格或制表符就会报缩进错(IndentationError: unexpected indent)
# 而且如果缩进提前
if 10>20:
abc=1
# 也会缩进报错(IndentationError: expcted an indented block)
行
可以通过换行将代码分块。
要求:
1. 函数定义和其他代码之间要有一个换行。
2. 类的声明和其他代码之间要有两个换行。
(但不按要求不会报错)
!! 注意:语法相关的所有的符号,都必须是英文输入法下的符号,不是的话会报错。
(原理:编码不同,英文输入法下标点与其他输入法标点的长度是不一样的。)
5. 多行语句
原因:一行代码太长,需要多行显示。
python中,如果一行只有一个语句,那么语句后面可以不写分号。(写了也不会报错)
如果一行有多行语句,那么语句要用分号分开。
aaa=1
bbb=2
ccc=3
ddd=4
sum1=aaa+bbb+ccc+ddd
sum2=aaa+\
bbb+\
ccc+ddd
# 其实sum1和sum2是一样的,只是将一行代码写成多行。
# 多行显示一行代码时,缩进不敏感
# 列表,字典,元组,集合(这四类叫容器类数据类型)的元素在多行显示的时候,可以不用\连接
dict1 = {'name':'dingning',
'age':'18',
'gender':'女'}
#SyntaxError: invalid character in identifier(逗号一定要是英文版的,不然就要报这种错)
三、标准数据类型
1. Number(数字)
python中的数字分为:
+ 整型(整数,int)
Python中只有长整型int,python2中有long 例如:23,100,-25,0
+ 浮点型(小数,float)
Python中只有float类型,例如:12.9,1.0,0.0,2e2,2e-2(科学计数法表示的数属于浮点数,有e的那种)
+ 布尔(bool)
表示真假(是否)的值,值只有True(真,1)和False(假,0)两个值
+ 复数(实数和虚数,complex)
由实部和虚部组成,数据处理时用的比较多。如;10+1j
2.Str(字符串)
由单引号或者双引号括起来的字符就是字符串(包含双引号,但双引号内的是字符串的内容)
字符串在python中推荐使用单引号。
'' 引号里面啥也不写连空格都没有的,就叫空串,长度是0
' ' 空格字符串是有意义的字符串
在python中没有字符类型,所说的字符就是用引号括起来的长度是1的字符串。(字符串中单独的一个符号就是一个字符)
字符串中的长度就是有多少字符就有多长,一个字符看做一个1
可以通过type()函数去查看值的类型
print(type(10))
print(type(12.5))
print(type(True))
print(type(10+2j))
python 中需要*转义字符*来表示一些特殊的字符串:
包括一些有特殊意义和特殊功能的字符串
转义字符即反斜杠\
print('\'') #表示’
print('\\') #表示\
print('\t床前明月光,\n疑是地上霜') #表示换行(\n),表示制表符缩进(\t)
在字符串前加r/R,阻止转义字符转义
print(r'a\nb')
print('a\nb')
print(R'\ta')
print('\ta')
四、进制的认识与转换
1.进制的认识
进制:**二进制,八进制,十进制,十六进制**
十进制:
1. 基数:0,1,2,3,4,5,6,7,8,9
2. 逢十进一
例子:123:100+20+3=1*10^2+2*10^1+3*10^0
二进制:
计算机在存储数据的时候,存的都是二进制数
1.基数:0,1
逢二进一
例子:1101:1+4+8=1*2^0+0*2^1+1*2^2+1*2^3=13
八进制:
1.基数:0,1,2,3,4,5,6,7
例子:26:8^0*6+8^1*2=6+16=22
十六进制:
1.基数:0,1,2,3,4,5,6,7,8,a/A(10),b/B(11),c/C(12),d/D(13),e/E(14),f/F(15)
例子:1f : 1*16^1+15*16^0=16+15=31
2. 十进制与其他进制
- 所有进制转十进制:每一位上的数乘以当前位上的某进制的幂次数(从低位到高位,幂次数从0开始一次加一)再全部相加。
- 十进制转换成其他进制:整除取余
3. 二进制与其他进制
- 二进制和八进制:每三位二进制转换一位八进制
- 十六进制的转换:每四位二进制转换成十六进制
4. python 与进制
1.python中进制的表示
print(12) #直接写数字,就是十进制
print(0b1101) #在二进制数前加“0b”
print(0o10) #在二进制数前加“0o”
print(0xa1) #在数字前加“0x”表示十六进制数
2.python中进制的转换
+ bin() :将括号中的数字转换成二进制数,返回字符串形式数据
print(bin(10))
print(bin())
+ oct() :将括号里的数据转换成八进制
print(oct(10))
print(oct(0b110011))
+ hex():将括号中的数字转换成十六进制数
print(hex(10))
五、变量
1. 变量的作用
变量用于储存数据的。
2. 声明变量
在python中声明变量不用指定类型,一个变量可以存储任何数据
变量名 = 初值
+ 变量名:标识符,且必须全部小写(符合PEP 8命名方式),要求见名知意
+ '=' :赋值符号,要求赋值符号的左边必须是变量,右边一定是有值的表达式;
+ 初值:python中声明变量必须赋值
a)一次声明一个变量
A = 10
#10=2 一定会报错 SyntaxError: can't assign to literal
name = 'apple' #声明了一个变量,并且附了初值,初值是一个字符串
b)一次声明多个变量
a = b = c = 10
# 同时声明三个变量a,b,c,他们的初值都是10,但是不能是a,b,c=10,会报错 TypeError: 'int' object is not iterable
a1,b1,c1=10,12.6,'aaa'
# 同时声明了三个变量,且分别赋初值,每个变量一定要对应一个准确初值
3. python中变量变化的原理
一个变量可以存储多种类型的值(python是动态语言)
其实实现原理是将内存中开辟了一个名字叫变量名的区域,然后所赋值在内存的另一个地方,变量名指向所赋值的地址,就完成了赋值。
所以内存不冲突,不需要限定变量的容量,如果变量名指向一个值,就是指向那个地址,其他没有被指向的值就会在内存被销毁。
六、运算符
- 算数运算符
+(加),-(减),*(乘),/(除),%(求余)
//(整除):可以对浮点数做整除的操作,只是结果只保留整数的部分(如果运算中涉及浮点数,结果会是浮点数,如果是整数则是整数)
**(幂运算)
算数运算符是有优先级的。
案例
# 练习:获取n的个位数,十位数和百位数,要求n大于100
n=7896
print(n%10) # 取个位数:对10取余
#十位数:(两种方法)
print(n//10%10)
print(n%100//10)
#百位数:(和取十位数是异曲同工)
print(n//100%10)
print(n%1000//100)
关于数学模块与运算
除了算数运算符可以让python进行数学运算以外,python还有专门提供数学运算的内置模块,叫math 模块。
通过import关键字可以导入python的模块,使用在模块里面的函数格式:模块.函数()。
例子
import math
num = math.fabs(-20) #fabs(n) 求绝对值
print(num)
print(math.pi) # pi:圆周率
其他例子 看《Math 模块常用命令整理》