python基础
第一节 快捷键
1.快捷键:
ctrl+/ 注释/取消注释
ctrl+s 保存
control+c 复制/拷贝
control+v 粘贴
control+X 剪切
control+b 在sublime中是编译并执行,在其他语言是ctrl+r
control+a 全选
control+z 撤销
contral+shift+z 反撤销
control+f 搜索框
control+n 新建文件
control+shift+n 新建工程
shift+鼠标首尾 可以部分选中
注意
写代码的时候,一定是在英文状态下
第二节
1.注释
注释是不会参与代码的编译和执行的,只是对代码进行解释和说明文字(长时间后回头看自己的代码或团队合作时方便别人看懂!)格式分为单行注释和多行注释。
1.1单行注释
格式:单行注释就是在注释文字前加#
例如:#我是单行注释
1.2多行注释(有两种)
格式1:用三个双引号"""....."""或单引号'''.....'''将注释文字括起来
例如
"""
窗前明月光
疑似地上霜
"""
格式2:采用多个单行注释的方式
# 举头望明月
# 低头思故乡
2.标识符
2.1 用途:专门用来命名变量、函数和类。
2.2 规范:
- 标识符是由字母数字下划线组成
- 数字是不能开头的
- 区分大小写(a与A是不同的)
- python3版本以后,标识符中可以包含非ascii码(可以使用中文)但是在实际开发中不建议使用中文
3.关键字
定义:python中保留用来作为特殊语法和拥有特殊功能的一些单词,也称保留字。
imprt 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']
以上为python中保留的所有关键字
4.行与缩进
4.1缩进要求
- 同一级的代码必须保持同一缩进(规范:统一使用Tab键产生缩进)
- 通过缩进来产生代码块(类似其他语言中的{}相同缩进的代码表示同一级代码块)
例如:
a=10
b=20
if a>10:
print('abc')
4.2行的规范
- 申明函数的前后必须有两个换行
- 声明类的前后也需要两个换行
- 多个功能模块间用换行隔开
5.多行显示(一句代码多行显示)
- 在需要换行的地方加“\”,然后在后面换行。换行后缩进不受限制。
例如:
a=1000000/3900000*900000/987
b=1000000/3900000\
*900000/987
print(a)
print(b)
- 列表、字典、元组、和集合的字面量换行不用加“\”。
6.字面量(具体的值即常量)
- 数字字面量:10,12.2,-20.科学计数法,10j(复数)
c=3e2
print(c)
- 布尔值:True,fause(注意:布尔值首字母必须大写)
- 字符串:用''或""括起来的都是字符串。如"jkh@#$%"
- 列表:[10,20,'hello',True]
- 字典:{'a':10,'name':'wanglong'}
7.python中的基本数据类型
- 7.1数字相关的
int(整形),float(浮点型),complex(复数) - 7.2布尔类型bool
只有True 和fause两个值 - 7.3字符串str
- 7.4列表 list
- 7.5字典 dict
- 7.6元组 tuple
- 7.7集合 set
- 7.8函数 function
- 7.9字节 bytes
第三节
1.变量
声明变量就是在内存中开辟空间存储数据的。(变量就是用来存储数据的)
1.1格式:变量名=值
格式说明:
- python声明变量时不需要确定类型
- 变量名:标识符,不能是关键字;见名知意;PEP8命名规范:所有字母要小写,多个单词用下滑线-隔开
- “=”赋值符号:将右边的值赋给左边的变量
- 值:表达式(就是有结果的,例如字面量,运算表达式,其他的变量)
name='王宇'
class_name='python1806'
print(name)
print(class_name)
1.2申明一个变量,可以存储不同类型的值
1.3.python中每条语句结束可以不用";"也可以用,但是一行要写多条语句就必须要加。
number=100;number=True
print(number)
1. 4同时申明两个变量,并赋一样的值
str1=str2="旺旺"
1.5同时使用print打印多个值
print(str1,str2)
3.id函数
id(变量) ---查看变量的地址
print(id(a))
a=20
print(id(a))
以上程序中,两次输出a的地址是不同的,python是动态语言,将20赋值给a后,原来值等于10的内存空间自动释放。
python中申明变量和给变量赋值的原理:先在内存中开辟空间 然后再将变量名作为标签对应(过程:先找杯子,再装水,最后贴标签)。
b=10;a=10
print(id(a),id(b))
注意此处输出a与b的地址是一样的。
第四节
1.int(整形)
所有整数都是整形,python3中整型只有int,python2中有int和long
num1=10
num2=-100
内置函数:type() ---获取括号中数据的类型
print(type(num1),type(num2))
2.fioat(浮点型)
所有带小数点的数都是浮点型。python中的浮点数只有float
num3=0.12
num4=100.00
num5=5e3
print(num3,type(num3),type(num4),type(num5),)
3.布尔bool(True和Fause)
True 对应 1;Fause对应0
说明:int、float、bool三种类型的数据可以自由转化
bool1=True
a=1
print(bool1+a)
此代码块中bool的值在表达式中有布尔型自动转化成整形,值由True转化为1。
第五节
1. 运算符
1.数学运算符(7种)
加减乘除+,-,*,/, //整除,%取余, **冥运算
1.1.1加减乘除,取余跟数学里面一样
print(10+20)
print(3%2)
print(10-2.5)
print(3/2)
1.1.2“//”整除,即求商只取整数部分
print(5//2)
1.1.3** (冥运算)
x**y------表示x的y次方
print(3**2)
print(9**0.5)
2.比较运算符:>,<,==,!=,>=,<=
比较运算的结果都是布尔值
print(10>20)
print(10<20)
print(10!=20)
3.逻辑运算符:and(与),or(或),not(非)
逻辑运算符操作的数据是布尔值,返回的结果也是布尔值
3.1 and 与--和,并且(两个都是true结果才是True,只要有一个为Fause,结果就为False)
3.2 要求两个或者多个条件同时满足
score=4.0;score2=80
print(score>3.5 and score2>=90)
输出结果为False
3.2 or(或)-----或者(两个条件只要满足一个就为True)
3.3 not(非)
例如:年龄不小于18
age=20
print(not age<18)
print(age>=18)
两次输出结果都为True
3.4 in ,not in
print('a' in 'beat')
4.赋值运算符: =(赋值),+=,-=,=,/=,%=,//=,*=
4.1赋值符号的左边必须是变量;运算顺序是先计算右边的值,再赋值给左边的变量
a=10
b=10+20
c=a+b
d=a>b
print(d)
4.2 格式:变量+=值或变量-=值(这的变量必须是已经申明过得变量)。
- a+=2 # 相当于a=a+2
- b-=10 # 相当于b=b-10
- 3运算符的优先级
- 数学运算符>比较运算符>逻辑运算符>赋值运算符
- 数学运算符中:*>(,/,%,//)>(+,-)
- 优先级高的先运算,如果优先级相同则从左到右依次运算,可以加()改变运算顺序
print(10*20+30<40/20-100)
运算顺序如下:
(1)10*20+30
(2)40/20-100
(3)230<-98
第六节
1.进制
计算机中常用的进制有:二进制、八进制、十进制、十六进制
1.1十进制
1.1.1基数:0、1、2、3、4、5 、6、7、8、9
1.1.2进位:逢10进1
1.1.3十进制上的每一位:123 ------ 1* 100+2 * 10+3 * 1
------10^2 * 1+10^1 * 2+10^0 * 3
1.2二进制
1.2.1基数:0、 1 例如:0101、1011
1.2.2进位:逢2进1
1.2.3二进制数上的每一位:1011---2^0 * 1+2^1 * 1+2^2 * 0+2^3 * 1=11
1.3八进制
1.3.1基数:0、1、2、3、4、5 、6、7
1.3. 2进位:逢8进1
1.3.3 八进制数上的每一位:123 ---8^0 * 3+8^1 * 2+8^2 * 1
1.4十六进制
1.4.1基数:0、1、2、3、4、5 、6、7、8、9、a~f 例如1af
1.4.2进制:逢十六进一
1.4.3十六进制数上的每一位:123---16^0 * 3+16^1 * 2+16^2 * 1
2.进制间的转换
2.1二进制、八进制、十六进制----->十进制
2.2八进制、十六进制-----二进制
- 将一位的八进制转换为3位的二进制
- 将一位的十六进制转换成4位的二进制
例如:
123(8)----001 010 011(2)
123(16)----0001 0010 0011(2)
2.3二进制------>八进制、十六进制
- 将3位的二进制转换成一位的8进制
- 将4位的二进制转换成一位的16进制,不够4位的在前面补0,不能补在后面
2.4十进制转换成二进制
- 正整数:除二取余,逆序排列
3.python中各进制数的表示级转化
python对进制的支持:python支持整数的二进制、八进制、十六进制、十进制
3.1python中二进制、八进制、十六进制的表示
3.1.1 二进制:0b
print(0b11)
print(bin(8)) #将10进制转化成二进制
print(bin(0o12)) #将8进制转化成二进制
print(bin(0x12ad))#将16进制转化成二进制
3.1.1 八进制:0o
print(0o11)
print(oct(8)) #将10进制转化成8进制
print(oct(0x12)) #将16进制转化成八进制
3.1.1十六进制:0x
print(0x11)
print(hex(8)) #将10进制转化成16进制
第7节 补充
计算机在存储数据时,都是以2进制来存储的,存储的都是数据的补码
1.原码:就是数据的二进制形式
- 正数:符号位的值是0,后面是数值大小
- 负数:符号位为1,后面是去掉符号位后的数值大小
十进制 | ... | 二进制 |
---|---|---|
10 | 1010 | 0000 1010 |
-10 | 1010 | 1000 1010 |
2.反码
- 正数:反码跟原码一样
- 负数:其原码最高位即符号位不变,其他位按位取反
十进制 | ... | 二进制 |
---|---|---|
10 | 1010 | 0000 1010 |
-10 | 1010 | 1111 0101 |
3. 补码
- 正数:补码跟原码一样
- 负数:反码加1
十进制 | ... | 二进制 |
---|---|---|
10 | 1010 | 0000 1010 |
-10 | 1010 | 1111 0110 |
4. 计算机加法器
用二进制计算:2+(-3)=-1
2的补码 | 0000 0010 |
---|---|
-3的原码 | 1000 0011 |
-3的反码 | 1111 1100 |
-3的补码 | 1111 1101 |
补码相加 | 1111 1111 |
补码---->>原码:补码减1,再按位取反
二进制 | 十进制 | 补码 | 反码 | 原码 |
---|---|---|---|---|
1000 0001 | -1 | 1111 1111 | 1111 1110 | 1000 0001 |