Python 基础知识笔记
1 下载安装 Anaconda
- 去官网下载安装包,双击安装包安装,安装路径可自定义安装。
- 安装完成后设置环境变量,在环境变量中的 path 中添加 Anaconda 的安装路径及路径下的 Scripts 的路径
- 然后打开 cmd 命令窗口,输入 conda --version 校验是否安装成功
- 启动 Anaconda ,在电脑搜索的地方搜索 “Jupyter Notebook” 进行启动。
2 基础知识
2.1 print:用于字符串打印
语法:
print(value,...,sep='',end='')
1. 1. value:输入一个或多个要打印的字符串
1. 2. sep:代表可自定义 value 之间的符号,默认为空格
1. 3. end:代表可自定义 value 结尾的符号,默认为换行符号
print('lemon','apple','banana',sep=',',end='.')
2.2 注释与换行操作
单行注释:
print('hello','world') # 向屏幕输出 hello world
多行注释:
'''
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
'''
"""
宫中府中,俱为一体,陟罚臧否,不宜异同。
若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。
"""
print('侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。')
print('愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。')
print('将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。')
换行:
print('愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
亲贤臣,远小人,此先汉所以兴隆也;
亲小人,远贤臣,此后汉所以倾颓也。
先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。
侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。')
2.3 单引号、双引号及转义字符
print('臣本布衣,躬耕于南阳')
print("臣本布衣,躬耕于南阳")
print(''' I'm pythonic,I said:"Practice makes perfect" ''')
print(""" I'm pythonic,I said:"Practice makes perfect" """)
1. 用反斜杠()转义特殊字符
print('n')
print('\n')
1. 可以用 r 和 R 来定义原始字符串
print(r'\n') # 打印的是 \n
print(R'\n') # 打印的是 \n
2.4 运算符和数学函数
运算符:
# 乘方
4 ** 4 # 表示4的4次方,结果:256
1. 取整
20 // 6 # 结果:3
1. round 四舍五入
round(8.9) # 四舍五入保留到整数位
round(10.671,2) # 四舍五入保留小数点后两位
1. abs绝对值取整
abs(-1)
math 数学函数:
import math
math.ceil(5.01) # 向上取整
math.floor(5.99) # 向下取整
math.trunc(10.9) # 截取整数位
math.pow(2,4) # 幂运算,表示2的4次方
2.5 字符串
特点:由单引号、双引号、三个单引号、三个双引号 组成
'A' + 'B' # 结果:AB
'A' * 3 # 结果:AAA
'python'[1] # 结果:y
'python'[-2] # 结果:o
'python'[1:4] # 结果:yth
'python'[2:] # 结果:thon
String.strip([chars]) :
- chars为空:去除头尾空白符(n、r、t、'',即换行、回车、制表符、空格)
- chars不为空:将chars拆成一个一个字符,去除头尾指定的字符
' abc123abc '.strip() # 结果:'abc123abc'
'abc123abc'.strip('ab') # 结果:'c123abc'
'abc123abc'.strip('ba') # 结果:'c123abc'
'eabc123abc'.strip('ba') # 结果:'eabc123abc'
'abc123cba'.strip('bac') # 结果:'123'
'abc12abc3cba'.strip('bac') # 结果:'12abc3'
' abc123abc '.lstrip() # 结果:'abc123abc '
' abc123abc '.rstrip() # 结果:' abc123abc'
'python'.startswith('p') # 结果:true
'python'.endswith('n') # 结果:true
'apple'.find('p') # 结果:1
'apple'.index('p') # 结果:1
'apple'.find('m') # 结果:-1
'apple'.index('m') # 结果:报错
'python'.replace('t','TT') # 结果:'pyTThon'
'python'.replace('python','hello') # 结果:'hello'
- %s: 使用 str() 函数进行字符串转换
- %d: 转为十进制整数
- %f: 转为浮点数
'hello %s' %('world') # 结果:'hello world'
'hello %s,%s' %('world') # 结果:报错
'hello %s,%s' %('world','apple') # 结果:'hello world,apple'
'I am %{name}s, I am %{age}s years old' %{'name':'cily','age':16} # 结果:'I am cily, I am 16 years old'
'I am %d years old' % (16) # 结果:'I am 16 years old'
'%f' % (3.14) # 结果:'3.140000'
'%.3f' % (3.14) # 结果:'3.140'
'hello {}'.format('world') # 结果:'hello world'
'hello {} {}'.format('world','python') # 结果:'hello world python'
'hello {1} {0}'.format('world','python') # 结果:'hello python world'
'I am {name}, I am {age} years old'.format(name = "cily",age = 16) # 结果:'I am cily, I am 16 years old'
2.6 Number(数字):整形、浮点型、复数
Python数字类型:整形(int)、浮点型(float)、复数(complex)、布尔型(bool)
进制转换:
- bin 转化为二进制 0b1010
- oct 转化为八进制 0o12
- int 转化为十进制 10
- hex 转化为十六进制 0xa
type(10) # int
type(10.) # float
print(3+1.0) # 4.0
print(type(3+1.0)) #
1. Python 中相除,默认返回浮点型
print(3/1) # 3.0
print(type(3/1)) #
1. 整除
print(3//1) # 3
print(type(3//1)) #
complex(3,) # (3+0j)
complex(3,4) # (3+4j)
complex(3,4).real # 实部,结果:3.0
complex(3,4).imag # 虚部,结果:4.0
complex('3',4) # 报错
complex('3+4j') # (3+4j)
complex('3 + 4j') # 报错
int(True) # 1
int(False) # 0
isinstance(1,int) # True
isinstance(0,int) # True
isinstance(True,int) # True
isinstance(False,int) # True
bool(1) # True
bool(0) # False
bool(-1) # True
bool(None) # False
bool() # False
bool('') # False
bool(' ') # True
bool([]) # False
bool({}) # False
2.7 列表、元组、字典
# 创建空列表
list[]
[]
1. 创建只有一个元素的列表
[1,]
[1]
1. 创建包含不同数据类型的列表
['a',1,2,3.14,[1,2,3,4]]
1. 列表操作
['a',1,2,3.14,[1,2,3,4]][0] # 'a'
['a',1,3.14,[1,2,3,4]][3][2] # 3
[1,2] + [3.4] # [1,2,3.4]
[1,2] - [3.4] # 报错,列表间不支持相减操作
[1,2] * 5 # [1,2,1,2,1,2,1,2,1,2]
[1,2] / [3.4] # 报错,列表间不支持相除操作
- list.count(x) : 统计列表中 x 出现的次数,若不存在则返回 0
- list.append(x) : 向列表尾部追加成员 x
- list.extend(l): 向列表尾部追加另外一个列表 l
- list.index(x) : 返回参数 x 在列表中的序号,若不存在则报错
- list.insert(index, object) : 在列表指定位置插入数据
- list.pop() : 默认删除列表尾部成员,并返回删除的成员
- list.remove(x) : 删除列表中指定成员(有多个则只删除第一个),若指定成员不存在则报错
- list.reverse() : 将列表中的成员顺序颠倒
- list.sort() : 排序(要求成员间可排序,否则报错)
x = [1,2,3,4,2,5,3,8,2,9,0,19,2,14,12,34,25]
x.count(2) # 4
[1,2,3].append([7,8,9]) # [1,2,3,[7,8,9]]
[1,2,3].extend([7,8,9]) # [1,2,3,7,8,9]
[11,12,13,14].pop() # 14
[11,12,13,14].pop(1) # 12
元组基本形式:圆括号 ()
包围的数据集合,可以通过序号访问元素。一种特殊形式的列表。一但创建不可变。
【注意】:元组的元素不可变,但当元组元素为列表或字典数据类型时,列表或字典内的内容是可以变的。
# 创建空元组
()
tuple()
(1,) # 创建只有一个元素的元组不能省略这个逗号
type((1,)) # tuple
type((1)) # int
a = (1,2,3,[4,5,6])
a[1] = 10 # 报错
a[3][0] = 10 # a的值变为 (1,2,3,[10,5,6])
- 元组常见函数:
- len(tuple) # 返回元组数量
- max(tuple) # 返回元组最大值
- min(tuple) # 返回元组最小值
- tuple(seq) # 将序列转为元组
{} # 创建空字段
dict() # 创建空字段
fruits = {"lemon":5,"apple":10}
fruits['lemon'] # 5
fruits['pear'] # 通过不存在的键访问成员会报错
fruits['lemon'] = 20
fruits['pear'] = 15
del fruits['pear'] # 删除pear
fruits.clear() # 清空整个字典
del fruits # 删除 fruits
字典的键的数据类型可以是:字符串、数字、元组不可变数据类型,不能为列表类型。
- dict.copy() # 复制字典
- dict.get(key,default=None) # 获取key对应的值,若key不存在则返回default
- dict.items() # 获取由键和值组成的迭代器
- dict.keys() # 获取键的迭代器
- dict.values() # 获取值的迭代器
- dict.pop(key,[default]) # 删除key:value的指定成员对。若key不存在,则返回default
- dict.popitem() # 从字典末尾删除key:value,并返回key:value
- dict.update({key:value}) # 从另外一个字典更新成员(存在则覆盖,若不存在就创建。)
- dict.setdefault(key,default=None) # 若字典存在key,则返回对应的值(不会覆盖原值)。若不存在,则建立一个key:default的字典成员。
fruits1 = {'lemon':5,'apple':10}
fruits2 = fruits1.copy()
fruits1.get('pear','该键不存在')
fruits1.items() # dict_items([{'lemon':5},{'apple':10}])
fruits1.keys() # dict_keys(['lemon', 'apple'])
2.8 Set集合类型
集合(set):无序、不重复的数据集合。无法通过键访问成员。可以使用大括号{}或者set()函数创建集合。
# 注意:创建一个空集合必须用 set() 而不是 {},因为 {} 是创建一个空字典。
type(set()) # set
a = {1,2,3,4}
type(a) # set
b = {1,1,3,3,2,2,4,4} # 最终 b 的值为 {1,3,2,4}
c = ['lemon','lemon','apple','apple']
set(c) # 去重,结果:{'lemon','apple'}
d = {1,2,3,4,5,6}
len(d) # 6
1 in d # True
7 in d # False
d - a # 得出集合间的差集 {5,6}
d & a # 得出集合间的交集 {1,2,3,4}
d | a # 得出集合间的并集 {1,2,3,4,5,6}
2.9 Python 基本数据类型总结
2.10 变量
命名规则:只能包含字母、数字、下划线,不能以数字开头。最好用小写字母。
关键字:
False、class、finally、is、return、True、continue、for、lambda、try、None、def、from、nonlocal、while、and、del、global、not、with、as、elif、if、or、yield、assert、else、import、pass、break、raise、except、in
2.11 运算符
+
-
*
/
%
//
**
a = {1,2,3,4}
b = {1,2}
a - b # 得出集合间的差集 {3,4}
'python ' * 3 # 字符串 'python python python '
[1,2,3] * 3 # 列表 [1,2,3,1,2,3,1,2,3]
(1,2,3) * 3 # 元组 (1,2,3,1,2,3,1,2,3)
10 // 3 # 取整运算 3
10.0 // 3 # 取整运算 3.0
赋值运算符:=
+=
-=
*=
/=
%=
//+
**=
比较(关系)运算符:==
!=
=>
random_num:
print('大了')
elif guess_num0:
lemon = 5
print(lemon) # 5
for i in range(10):
lemon = 9
print(lemon) # 9
i = 1
while i=3,n∈N*)
# 实现:用户输入任意数字,返回第N项数字
def fib(num):
if num 5]
b # [6,7,8,9]
num = int(input('请输入数字:'))
fibs_list = [fib(i) for i in range(1,num+1)]
fibs_list #