本文参考Python菜鸟教程
Python基础语法
#单行注释以`#`,多行注释以`"""`开头和`"""`结尾。
#注释1
"""
多行注释
"""
#缩进与if,无需分号
if True:
print('true')
#多行语句,变量通过‘\’来实现多行语句
a = 1
b = 2
c = 3
total = a + \
b + \
c + \
print(total) #输出6
#字符串
str = '012345'
print(str) #输出012345
print(str[0:-1]) #输出01234 取0到4左闭右开 -1表示最右边
print(str[0:-2]) #输出0123
print(str[1]) #输出 1
print(str[2:]) #输出 2345
print(str[0:4:2]) #输出 02 范围[0,4),即0 1 2 3 步长为2
print(str * 2) #输出012345012345
print(str + '你好') #输出012345你好 字符串拼接
data = input("输入数据") #读取数据
print(data) #输出
#同一行显示多条语句
a = 1; b,c=2,'hello'
print(a,b,c) #输出1 2 hello
Python基本数据类型:
- 不可变数据:Number(数字),String(字符串),Tuple(元组);
- 可变数据:List(列表),Dictionary(字典),Set(集合);
a, b, c, d, e, f = 1,5.1,True,1+2j, "Hello", [1,2,3]
print(isinstance(a, int), isinstance(b, float),
isinstance(c, bool), isinstance(d, complex),
isinstance(e, str), isinstance(f, list)) #全部输出True
print(type(a), type(b), type(c), type(d), type(e), type(f))
#输出<class 'int'> <class 'float'> <class 'bool'> <class 'complex'> <class 'str'> <class 'list'>
print(int(b)) #输出5 强制转换float为int类型
isinstance 和 type 的区别:
type()
可以检测出是否是子类,isinstance()
无法检测出是否是子类。
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
print(f"{self.name} says something")
a=Animal("Dog")
print(type(a)==Animal) #True
print(type(a)==object) #False
print(isinstance(a,Animal)) #True
print(isinstance(a,object)) #True
bool布尔值
对于右方的值bool值判断均为False
:None
,False
,0
,''
,()
,[]
,{}
。
其他的均为True
。
a,b,c,d,e,f,g = None,False,0,'',(),[],{}
print(bool(a),bool(b),bool(c),bool(d),bool(e),bool(f),bool(g)) #输出False False False False False False False
# 布尔类型的整数
print(int(True)) # 1
print(int(False)) # 0
LIst列表
list = [1,2.1,'abc',True]
list2 = [2,4]
print(list) #输出[1, 2.1, 'abc', True]
print(list[2]) #输出abc
print(list[1:3]) #输出[2.1, 'abc']
print(list + list2) #输出[1, 2.1, 'abc', True, 2, 4]
list[1:3] = [3, 'def']
print(list) #输出[1, 3, 'def', True]
Tuple元组
tuple1 = (1,2.1,'abc',True)
tuple2 = (2,) #一个元素后面要添加逗号
print(tuple1) #输出(1, 2.1, 'abc', True)
print(tuple1[2]) #输出abc
print(tuple1[1:3]) #输出(2.1, 'abc')
print(tuple1 + tuple2) #输出(1, 2.1, 'abc', True, 2,)
注:元组中元素不可变,列表中元素可变
Set集合
set1 = {'a', 'b', 'c', 'd', 'e','a'}
print(set1) # 输出 {'a', 'b', 'c', 'd', 'e'} 自动去重
if 'a' in set1:
print('a 在集合中') # 走这条 输出 a 在集合中
else:
print('a 不在集合中')
set2 = set('abcde')
print(set1 == set2) # 输出 True
set2 = set('abcdh')
print(set1 - set2) # 求set1和set2的差集 输出 {'e'}
print(set1 | set2) # 求set1和set2的并集 输出 {'a', 'b', 'c', 'd', 'e', 'h'}
print(set1 & set2) # 求set1和set2的交集 输出 {'a', 'b', 'c', 'd'}
print(set1 ^ set2) # 求set1和set2中不重复的元素 输出 {'e', 'h'}
Dictionary 字典
dict = {}
dict['key1'] = 'value1'
dict['key2'] = 'value2'
dict['key3'] = 'value3'
dict2 = {
'd_key1': 'd_value1',
0: 'd_value2',
}
print(dict['key1']) # 输出 value1
print(dict2[0]) # 输出 d_value2
print(dict.keys()) # 输出 dict_keys(['key1', 'key2', 'key3']) 输出所有key值
print(dict.values()) # 输出 dict_values(['value1', 'value2', 'value3']) 输出所有value值
Python运算符
算数运算符 | 描述 | 例子 |
---|---|---|
+ | 相加 | 5+6输出11,’a’+’b’输出‘ab’ |
- | 相减只允许数之间集合中表示差集 | 5-6输出-1 |
* | 相乘 | 5*6输出30 ‘a’*2输出’aa’ |
/ | 相除 | 1/2输出0.5 |
// | 整除,向下取整,去掉小数部分 | 1//2输出0 |
% | 取模 | 1%2输出1 |
** | 取幂 | 5**2输出25 |
赋值运算符 | 描述 | 例子 |
---|---|---|
= | 直接赋值 | c=1 |
+= | 加法赋值 | c+=1等效 c = c+1 |
-= | 减法赋值 | c-=1等效 c = c-1 |
*= | 乘法赋值 | c*=1等效 c = c*1 |
/= | 除法赋值 | c/=1等效 c = c/1 |
//= | 整除赋值 | c//=1等效 c = c//1 |
%= | 取模赋值 | c%=1等效 c = c%1 |
**= | 取幂赋值 | c**=1等效 c = c**1 |
:= | 海象运算符,用于表达式中同时赋值和返回赋值的值(Pthon3.8新增) | 下方为例子 |
n = 10;
if n > 5:
print(n)
#使用海象运算符
if (n := 10) >5: #可以直接在表达式中赋值,省去外部赋值
print(n)
位运算符 | 例子 |
---|---|
& | 与,print(0x5 & 0xf) 输出5 ,即0000 0101 & 0000 1111 |
| | 或,print(0x5 | 0xf) 输出15 ,即0000 0101 | 0000 1111 |
^ | 异或,print(0x5 | 0xf) 输出10 ,即0000 0101 ^ 0000 1111,结果0000 1010 |
~ | 取反(补码的形式),print(0x5)输出-6,即~0000 0101,输出1111 1010,原码为1000 0110 |
<< | 左移,print(0x5<<1)输出10,即0000 0101 << 1,结果0000 1010 |
>> | 右移,print(0xff>>1)输出127,即1111 1111>>1,结果0111 1111 |
逻辑运算符 | |
---|---|
and | x and y,如果x为False,返回x,True则返回y,如 print(10 and 20)输出 20 |
or | x or y,如果x为False,返回y,True则返回x,如 print(10 and 20)输出 10 |
not | not x,如果x为True,返回False,为False返回Ture。如print(not 20)输出 False |
成员运算符 | |
---|---|
in | 判断x是否在y的序列中,若在返回True |
not in | 判断x是否在y的序列中,若不在返回True |
list = [0 ,1, 2,3,4]
print(0 in list) #输出True
print(5 not in list) #输出True
身份运算符 | |
---|---|
is | x is y判断是否x和y的id相同,相同返回Ture(id通过id()函数查看) |
is not | x is y判断是否x和y的id相同,相同返回False |
Python常用函数
数学函数
from math import *
import random
#数学函数
abs(-10) #取绝对值 输出10
ceil(4.1) #向上取整 输出5
exp(1) #e的1次方 输出2.718281828459045
fabs(-10.2) #浮点数取绝对值 输出10.2
floor(4.9) #向下取整 输出4
log(100,10) #以10为底100的对数 输出2.0
log2(4) #以2为底4的对数 输出2.0
max(1,2,3,4,5) #取最大值 输出5
min(1,2,3,4,5) #取最小值 输出1
modf(4.5) #返回整数部分和小数部分 输出(0.5, 4.0)
pow(2,3) #2的3次方 输出8.0
round(4.6) #四舍五入 输出5
sqrt(4) #开平方 输出2.0
#随机数函数
random.choice([1,2,3,4,5]) #从序列中随机选取一个元素 输出3
random.randrange(1,10,2) #从指定范围内,按指定基数递增的集合中获取一个随机数 输出1
random.random() #随机生成下一个实数,它在[0,1)范围内 输出0.940667311678628
random.seed(10) #改变随机数生成器的种子seed 输出None
print(random.random()) #0.5714025946899135 与采用新种子生成上面的random.random()不同
random.shuffle([1,2,3,4,5]) #将一个列表中的元素打乱 输出[2, 5, 3, 1, 4]
random.uniform(1,10) #随机生成下一个实数,它在[x,y]范围内 输出7.750021655