Python基础语法
注释
#
标注的文本
数字
整数 int
Python3开始不再区分long、int,long被重命名为int,所以只有int类型了
进制表示:
十进制10
十六进制0xa
八进制0o10
二进制0b10
bool类型,有2个值True、False
浮点数
1.2、3.1415、-0.12,1.46e9等价于科学计数法1.46*109
本质上使用了C语言的double类型
字符串
使用 ' " 单双引号引用的字符的序列
'''和""" 单双三引号,可以跨行、可以在其中自由的使用单双引号
r前缀:在字符串前面加上r或者R前缀,表示该字符串不做特殊的处理
f前缀:3.6版本开始,新增f前缀,格式化字符串
e='c:\windows\nt'
print(e)
e = r'c:\windows\nt'
print(e)
e = f'c:\\windows\\nt'
print(e)
a='sadas'
b='fdgdf'
e=f"{a}****{b}"
print(e)
转义序列
\\ \t \r \n \' \"
前缀r,把里面的所有字符当普通字符对待,则转义字符就不转义了。
转义:让字符不再是它当前的意义,例如\t,t就不是当前意义字符t了,而是被\转成了tab键
缩进
未使用C等语言的花括号,而是采用缩进的方式表示层次关系
约定使用4个空格缩进
续行
在行尾使用 \,注意\之后除了紧跟着换行之外不能有其他字符
如果使用各种括号,认为括号内是一个整体,其内部跨行不用 \
标识符
标识符
- 一个名字,用来指代一个值
- 只能是字母、下划线和数字
- 只能以字母或下划线开头
- 不能是python的关键字,例如def、class就不能作为标识符
- Python是大小写敏感的
标识符约定
不允许使用中文,也不建议使用拼音
不要使用歧义单词,例如class_
在python中不要随便使用下划线开头的标识符
变量
赋值后,可以改变值的标识符
trpe
查看数据类型
>>> type('[a d f]')
<class 'str'>
>>> type('abc')
<class 'str'>
>>> type(124)
<class 'int'>
>>> type(124+1.1)
<class 'float'>
>>> type(124+1.1+True)
<class 'float'>
进制
常见进制有二进制、八进制、十进制、十六进制。应该重点掌握二进制、十六进制
0x表示16进制
0o表示8进制
0b表示二进制
二进制中最低位为1,一定是奇数;最低位为0,一定是偶数
进制转换
int("数据",数据本身的进制) 将数据转化为十进制数
oct(十进制数) 将十进制数据转换为8进制
bin(十进制数) 将十进制数据转换为二进制
hex(十进制数) 将十进制数据转换为16进制数
空容器
空容器
空集合set
空字典dict
空列表list
空元组tuple
布尔值
逻辑运算
and逻辑与 有假则为假,有0则为0
or逻辑或 有真则为真 有1则为1
not逻辑非 真为假,假为真 1为0 0为1
逻辑运算符也是短路运算符
and 如果前面的表达式等价为False,后面就没有必要计算了,这个逻辑表达式最终一定等价为False
or 如果前面的表达式等价为True,后面没有必要计算了,这个逻辑表达式最终一定等价为True
特别注意,返回值。返回值不一定是bool型
把最频繁使用的,最少计算就可以知道结果的条件放到前面,如果它能短路,将大大减少计算量
运算符
算数运算符
+
、-
、*
、/
、//
向下取整整除、%
取模、**
幂
注:在Python2中/
和//
都是整除
位运算符
&位与、|位或、^异或、<<左移、>>右移
比较运算符
比较运算符,返回一个bool值
==
、!=
、>
、>=
、<
、<=
链式比较: 4 > 3 > 2
赋值运算符
+=
、 -=
、*=
、/=
、%=
、//=
等
x = y = z = 10
成员运算符
in、not in
身份运算符
is 、is not
运算符优先级
单目运算符 > 双目运算符
算数运算符 > 位运算符 > 比较运算符 > 逻辑运算符
搞不清楚就使用括号。长表达式,多用括号,易懂、易读
内建函数
//(整除)向下去整
int 取整数部分,丢弃小数部分
round 四舍六入五取偶
math.floor()向下取整
math.ceil()向上取整
随机数
random模块
randint(a, b) 返回[a, b]之间的整数
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1。 random.randrange(1,7,2)
choice(seq) 从非空序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。random.choice([1,3,5,7])
3.6开始提供choices,一次从样本中随机选择几个,可重复选择,可以指定权重
random.shuffle(list) ->None 就地打乱列表元素
sample(population, k) 从样本空间或总体(序列或者集合类型)中随机取出k个不同的元素,返回一个新的列表
random.sample(['a', 'b', 'c', 'd'], 2)
random.sample(['a', 'a'], 2) 会返回什么结果
每次从样本空间采样,在这一次中不可以重复抽取同一个元素
import random
for i in range(20):
print(random.randint(1,5))# randint是左右都包的
#结果
4
5
5
2
2
4
2
1
1
4
5
2
4
2
4
5
4
4
2
5
for i in range(10):
print(random.randrange(5))# randrange是左包右不包的,类似range函数
#结果
0
3
4
4
0
0
3
0
2
4
#也可以加上步长
for i in range(10):
print(random.randrange(0,10,2))
#结果
2
6
8
4
4
8
4
4
0
2
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(10):
print(random.choice(x)) #choice,随机选择一个
#结果
6
7
6
5
5
7
3
3
5
8
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(10):
print(random.choices(x,k=3)) #选择多个,k为选择的个数
#结果
[8, 1, 2]
[4, 9, 2]
[4, 8, 7]
[4, 4, 7]
[3, 5, 7]
[1, 8, 1]
[8, 1, 8]
[7, 9, 4]
[5, 6, 4]
[3, 2, 5]
#还可以加权重
x = [0, 1, 2, 3, 4]
for i in range(10):
print(random.choices(x,[2,0,5,1,0],k=3))
#结果
[3, 0, 0]
[2, 2, 2]
[3, 2, 0]
[0, 2, 2]
[0, 2, 0]
[2, 2, 0]
[2, 0, 2]
[2, 2, 0]
[2, 2, 0]
[0, 2, 2]
#取样,不取重复索引的
x = [0, 1, 2, 3, 4]
for i in range(10):
print(random.sample(x,k=3))
#结果
[2, 4, 0]
[1, 3, 0]
[0, 2, 4]
[0, 1, 4]
[3, 2, 4]
[0, 3, 1]
[2, 4, 0]
[1, 4, 0]
[0, 2, 1]
[2, 0, 1]
本文来自博客园,作者:厚礼蝎,转载请注明原文链接:https://www.cnblogs.com/guangdelw/p/16910442.html