Install
pacman -S python-pip
yum install python3-pip
sudo apt install python3-venv
$ python3 --version
$ python3 -m venv vbuild
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Python 语法
func
def print_hi(name):
print(f'Hi, {name}')
print('hello, ' + name)
if __name__ == '__main__':
print_hi('PyCharm')
vars
len('asdfa')
int('123'), float, bool, str(1234)
ii = None
type(ii)
3 / 2 结果1.5
3 //2 结果1 向下取整
if True:
pass
elif a == 10 or a == 11: # and,or,not
pass
else:
pass
字典, 列表, 循环
mylist = [1,2,3]
mylist.append(4)
len(list)
mydict = {}
mydict = {'name': 'xiao', 'age': 12}
mydict['name'] = 'xiao2'
len(mydict) # 键值对
'name' in mydict
del mydict['name']
mytuple = ('aa', 'bb') # 不可变
===== 循环
for v in mylist:
pass
for k,v in mydict.items(): # 键值对
pass
for in in range(1,10): # 不包括10 (1,10,2)步长2
pass
mydict.keys()
mydict.values()
mydict.items()
函数, 面向对象
class ATM:
def __init__(self, id, name):
self.id = id
self.name = name
def show(self):
print(self.id, self.name)
a1 = ATM('01', 'xiao')
a1.show()
print(a1.name)
class SubATM(ATM): # 继承
def show(self):
pass
模块, 异常
https://docs.python.org/zh-cn/3/library/math.html
import math
math.sin(1)
标准库 https://docs.python.org/zh-cn/3/libray/index.html
import xxx
xxx.函数
xxx.变量
from xxx import 变量,函数
from xxx import *
IO模块, 异常
with open('./aaa.txt', 'r', encoding='utf-8') as f:
txt = f.read() # 全部内容 read(10)只读取10字节
row = f.readline() # while判断 row != ''
lines = f.readlines()
for row in lines:
pass
with open('./output.txt', 'w', encoding='utf-8') as f:
# 模式w 清空, 模式a 追加, 模式r+ 读写追加
f.write('hello\n')
try:
xxx()
except ValueError:
print(xxxx)
except:
print('all error')
else:
print('no error')
finally:
print('程序结束')
单元测试
assert len('he') == 2 # 报错停止程序
$ python -m unittest
import unittest
from 文件名 import 函数名
from 文件名 import 类名
class MyTestCase(unittest.TestCase):
def setUp(self):
self.xxx = 创建类
def test_something(self): # 函数必须test_xxx
self.assertEqual(True, False)
self.assertTrue(xxx)
if __name__ == '__main__':
unittest.main()
100示例
加法
n1 = 10
n2 = input("number 2: ")
sum = n1 + float(n2)
print("加法: ", sum)
阶乘
count = 1
for i in range(1, 6):
# count = count * i
count *= i
print("阶乘5: ", count)
算法1: 不重复三位数
nums = [1,2,3,4]
for i in nums:
for j in nums:
for k in nums:
if (i != j and i != k and j != k):
print(i,j,k)
算法2: 判断闰年
def check(n):
if n % 4 ==0 and n %100 !=0:
return True
if n % 400 == 0:
return True
return False
检查 print('2004', check(2004))
http://www.runnian.cc/runnianrunyue.aspx
算法3: Fib数列
def fib(n):
if n == 1 or n == 2 :
return 1
return fib(n-1) + fib(n-2)
检查 0,1,1,2,3,5,8,13 ...
https://oi-wiki.org/math/combinatorics/fibonacci/
==== 方式1
a = 1
b = 1
for n in range(3,41):
tmp = a+b
a = b
b = tmp
print(f'fib({n}) = {b}')
==== 方式2
dp = [0,1,1]
for i in range(10):
dp.append(dp[-1] + dp[-2])