Python快速入门
Python 快速入门
0.前景知识🧀
本教程适用于学过c/cpp语言者快速入门Python
0.1c语言变量的数据类型是事先定义的,而python是后天接受的,即python会在运行时自动识别变量类型
0.2
1 | x=1 |
0.3
字符串用单引号双引号都可(3个单/双引号表示长字符串–>解决多换行问题)
1 | print('Life is short,you need Python') |
0.4 缩进是命📢
缩进代表代码块
1.输入
a=input()
给 $a$ 赋值
a=input("请输入a:")
终端显示 请输入a: 后,可输入 $a$
搭配强制类型转换:类型(变量) 这里和
cpp
的强转有区别a=int(input())
2.数字类型
引入库
import random
a=random.randint(1,100)
生成从 1 到 100 的随机数
引入库
import decimal
1
2
3
4
5
6
7
8import decimal
a=decimal.Decimal('0.1')
b=decimal.Decimal('0.2')
c=decimal.Decimal('0.3')
print(c==a+b)//输出true
- `a=1+2j` ( 以浮点数的形式 )print(a)//输出(1+2j)
print(a.real)//1.0 实部
print(a.imag)//2.0 虚部地板除 - 类比
cpp
中整数除法(取整)1
2print(3/2) # 1.5
print(3//2) # 1abs()
绝对值 $or$ 模1
2print(abs(-0.33))# 0.33
print(abs(1+2j)) # 2.23606797749979$x^y$
pow()
和**
两种1
2
3
4
5x=2
y=3
print(x**y) # 8
print(pow(x,y)) # 8
print(pow(x,y,5)) # 2的3次方对5取余
3.布尔类型 bool()
True
`True` 就是 $1$
False
`False` 就是 $0$
4.逻辑运算 (与 cpp
逻辑运算类比)
and
类比&&
or
类比||
not
类比!
注: python 可以对任何类型进行真值运算,按照 短路求值 原则 ( 优先级:and > or > not
)
1 | print(2 and 3) # 3 |
5. if
1 | # 2<3 |
6.循环 ( break
和 continue
与 cpp
用法相同 )
while
1
2
3
4
5
6a=1;
while a<10:
print(a)
a+=1
else:
print(a) # 10,当while后面为假时,else执行一次(如果在while里break了,就不会执行这个else)for
类比cpp
的范围for
循环先了解一下
range()
range(start, stop, step)
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 左闭右开
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14for i in range(1,10): # 1 2 3 4 5 6 7 8 9
print(i)
for i in range(1,10,2):# 1 3 5 7 9
print(i)
## 7.列表
```python
list=[1,2,3,4,5,"上山打老虎"]
for i in list:
print(i,end=' ')
print(len(list)) # 6
print(list[-3]) # 4 下标是负数代表倒数第几个元素
切片🗡️
1
2
3
4
5
6
7
8
9
10
11
12
13print(list[3:6]) # 4 5 上山打老虎 左闭右开
print(list[:3]) # 1, 2, 3
print(list[3:]) # 4, 5, 上山打老虎
print(list[::-2]) # 上山打老虎, 4, 2
list[len(list):]=['x','y','z'] # 在末尾添加元素
print(list) # 1, 2, 3, 4, 5, 上山打老虎, x, y, z
list[3:]=['x','y','z']
print(list) # 1, 2, 3, x, y, z增删✏️
1 | list.remove('上山打老虎') # 删除指定元素 |
- 常用函数
1 | list = [6,8,7,1,2,5,3,2,8,2] |
- 常见操作
1 | a=[1,2,3] |
- 列表推导式
1 | list=[1,2,3,4,5] |
易错点🚨
- 潜拷贝 (只能拷贝最外面一层,用于一维拷贝)
1
2
3
4
5
6
7
8
9
10list=[1,1,1,1,1]
nums=list # 此时不是赋值,而是引用
nums[0]=2 # 直接修改了list
print(list) # 2 1 1 1 1
# 正确做法:切片/copy()
nums=list[:]
# nums=list.copy()
nums[0]=2
print(nums) # 2, 1, 1, 1, 1
print(list) # 1, 1, 1, 1, 1- 深拷贝
1
2
3
4import copy # 导入 copy 模块
matrix=[[1,2,3],[4,5,6],[7,8,9]]
x=copy.deepcopy(matrix)
8.元组
简单来说就是不可变(赋值)列表
1 | a=(1,2,3) |
9.字符串
1 | x="上海自来水来自海上" |
函数太多了 Python 字符串 | 菜鸟教程
10.字典
1 | a={'a':'A','b':'B'} |
11.集合
1 | a={'a','b','c','d'} |
很多函数 集合 | 菜鸟教程
12.函数
1 | def gcd(a,b): |
简单闭包
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25def power(exp):
def exp_of(base):
return base**exp
return exp_of
square=power(2)
cube=power(3)
print(square(3)) # 9
print(cube(2)) # 8
def outer():
x=0
y=0
def inner(x1,y1):
nonlocal x,y
x+=x1
y+=y1
print(f"现在的x={x},y={y}")
return inner
move=outer()
move(1,2) #现在的x=1,y=2
move(-2,-5) # 现在的x=-1,y=-3
Comment