Python
开发语言工具
文本工具
IDLE 适合入门
sublime text 适合专业编程
以下是跟着小甲鱼学习的笔记
ps:
assert这个关键字称之为“断言”,当这个关键字后边的条件为假,程序自动崩溃,抛出AssertionError的异常。
用处:用Ta在程序中置入检查点,当需要确保程序中某个条件一定为真才能让程序正常工作
缩进
缩进是python独特的地方
用缩进表示代码块
Python 的代码一般是一行一条语句,语句之后的分号 ; 可加可不加。但如果要在一行中写多条语句,则需要用分号 ; 隔开每条语句。例如print(“hello”);print(“world”) 是可行的
for in循环
for in 循环
- in表达从(字符串、序列等)中依次取值,又称为遍历(都拿出来)
- for-in 遍历的对象必须是可迭代对象【迭代:重复反馈的过程,目的是达到目标】
- 语法结构:
for 自定义的变量 in 可迭代对象:
循环体
- 语法结构:
for item in 'Python':
print(item)
#第一次取出来的是P,将P赋值item,将item的值输出
#range()产生一个整数序列,其也是一个迭代对象
range()
range([star] ,stop,[step=1])
range(begin,end,stepsize)
例子:
range(5)是从0~4
range(2,9)是从2~8
如果stepsize缺审,则stepsize=1
#如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_"
for _ in range(2):
print("bala")
#结果:bala
bala
#range()可做for-in循环次数
break
continue
- continue语句
用于结束当前循环,进入下一次循环,通常与分支结构中的if使用
for i in range(10):
if i%2!=0:
print(i)
continue
i+=2
print(i)
结果
2
1
4
3
6
5
8
7
10
9
input()函数是用户输入
从控制台获得用户输入,无论用户在控制台输入什么内容,input()函数都以字符串类型返回结果。
input()函数将用户输入的内容当做一个字符串类型,这是获得用户输入的常用方式。print()函数可以直接打印字符串,这是输出字符串的常用方式。
print()函数是计算机输出
输出函数print()如何按照期望的格式输出字符信息。
①输出纯文字字符,则直接打进print()
②当输出变量值时,需要采用格式化输出方式,通过format()方法将待输出变量整理成期望输出的格式
name=input("请输入一个人的名字:")
country=input("请输入一个国家的名字:")
print("{}来自于{}".format(name,country))
Python 的print也能实现格式化输出,方法是使用%操作符,它会将左边的字符串当做格式字符串,将右边的参数代入格式字符串:
如果要带入多个参数,则需要用()包裹代入的多个参数,参数与参数之间用逗号隔开,参数的顺序应该对应格式字符串中的顺序
print("%d + %d = %d" % (100,200,300))
print("%s %s" % ("world","hello"))
%s: 作为字符串
%d: 作为有符号十进制整数
关键字(又叫保留字)
Python 语言中内部使用的单词,代表一定语义。例如:and、class、if、else 等。保留字不能作为标识符,用在变量名、常量名、类名等地方
print(keyword.kwlist)可输出所有的关键字
#关键字与BIF(built in functions有什么区别)
标识符
标识符就是程序中,使用的各种名称,例如:变量名、常量名、类名等等
ps.1.第一个字符必须是字母表中的字母或下划线 _ ;
2.标识符的其他的部分,由字母、数字和下划线组成;
3.标识符对大小写敏感;
4.标识符不能与保留字相同
注释符号 #
多行注释(双引号或者单引号)
“”"
内容
“”"
————————————————
费曼一下:
————
为了打包数据并统一管理,我们需要容纳数据的容器
①可迭代的、元素有序的数据储存在“序列”的容器里
序列的操作:索引【内有正索引、负索引】;加"+"和乘*操作;切片操作【start,end,step】;in/not in;
序列:列表、字符串、元组、字节序列
——列表:可变
创建:list(iterable);[元素1,元素2,…]
ps.可迭代对象:字符串、列表、元组、集合和字典等
操作:追加.append();+;.extend()
插入:list.insert(i,x)其中i是索引位置,x是要插入的元素
替换:list[i]=x
删除:list.remove(x)X为元素;.del list1(i)
排序:sort()此时从小到大;
sort(reverse=True)此时从大到小;
sorted(list1);
list1.reverse();
嵌套列表:
>>> list1=[['LXY','LH'],['HH'],['ZXY','YU']]
>>> print(list1[0][1])
LH
访问时类似二维数组
——元组:不可变
创建:tuple(iterable);(元素1,元素2,元素3,…)
ps.元组的元素不可变,除非在元组中包含可变类型的数据。
——-——————————————
列表:**[]**一个打了激素的数组----工厂
-
如何创建列表
普通/混合/空的列表:
名字=[1,1.3,‘haha’,[1,2,3]] -
向列表添加元素
用法:
①要添加的列表名.append()【append只添加一个元素】
【这里为什么要用.呢?】
②要添加的列表名.extend()【extend也只添加一个列表,但 要添加的列表名.extend([])就可以加入多个元素】
注:
append和extend共同点是:都添加一个参数
不同点:append添加的是一个元素;extend添加的是一个列表
member.append([1,2,4])
>>> member
['hello', 'world', 'haha', 'wa', 'wuhu', [1, 2, 4]]
>>> member.extend([5,6,7])
>>> member
['hello', 'world', 'haha', 'wa', 'wuhu', [1, 2, 4], 5, 6, 7]
③insert有两个参数
要插入的列表名.insert(要插入的位置序列,要插入的元素)
序列是从0开始的【因为计算机是二进制的】
-
从列表中获取元素
列表名.[序列]
【-如果要一次性获取多个元素?】
【-列表分片(slide)
列表名[star:end]其中不包含end】
4. 从列表删除元素
①要进行删除的列表.remove(元素名字)
②del语句:
del 要进行删除的列表名字[序列]
③pop()
1)列表名.pop()
给出列表中最后一个元素并删除
2)列表名.pop(序列)
给出所要序列的元素并删除- 列表中一些常见的操作符
比较操作符< > =
逻辑操作符 and or not
连接操作符 +
重复操作符 *
成员关系操作符 in ;not in
【in只能判断一层的关系,与continue相似】
【那么如果我想判断列表里的列表的元素,怎么办?】
- 列表中一些常见的操作符
>>> list5=[123,['liuxinyu',456]]
>>> 'liuxinyu' in list5
False
>>> 'liuxinyu' in list5[1]
True
>>> list5[1][1]
456
6.列表类型的内置函数
>>> dir(list)
- count()
用处:数()内的元素出现多少次
用法:列表.count() - index()
用处:参数在列表中的位置
用法:
>>> list3
[123, 456, 234, 124, 123, 456, 234, 124, 123, 456, 234, 124]
>>> list3.index(123)
0
>>> list3.index(123,4,8)
4
-
reverse()
翻转
无参数 -
sort()
用法:用指定方式对列表进行排序
无参数时
>>> list3
[124, 234, 456, 123, 124, 234, 456, 123, 124, 234, 456, 123]
>>> list3.sort()
>>> list3
[123, 123, 123, 124, 124, 124, 234, 234, 234, 456, 456, 456]
有参数时
sort(reserse=True)#从大到小
5.?分片不会随着列表改变
元组:**()**带上枷锁的列表
列表可以任意修改其中的元素,可以插入和删除
逗号是关键【如果元组只有一个元素,在元素后面加上一个***,***,确保它是元组】
-
创建和访问一个元组
元组名()
【与列表的[]作比较】
访问方式—[N:M]表示从N到M(其中不包括M) -
更新和删除一个元组
切片
temp=temp[ :2]+('yijing',)+temp[2: ]
- 元组操作符
同列表
字符串:’ ’
- 字符串索引提取
Python字符串
文本在程序中用字符串类型来表示。Python 语言中,字符串是用两个双引号””或者单引号’’括起来的零个或多个字符。
正向递增序号:
序号是从0开始,其中空格也算字符
访问方式(切片)—[N:M]表示从N到M(其中不包括M)
反向递减序号:
可以混合使用正向和反向序号
>>>name="Python语言程序设计"
>>>name[0]
'P'
>>>print(name[0],name[7],name[-1])
P 言 计
>>>print(name[2:-4])
thon语言
>>>print(name[:6])
Python
>>>print(name[6:])
语言程序设计
>>>print(name[:])
Python语言程序设计
-
其他奇奇怪怪的内置方法p15这块先过
利用python–help–python docs F1—索引,然后学习
学习过程不要去怕,享受这个过程 -
字符串:格式化----format
是什么:统一规格输出
为什么:解决不统一的问题
format接受两种参数
位置数参数和关键字参数,都传递到replacement字段
>>> "{{0}}".format("不打印")
'{0}'
>>> '{0:.1f}{1}'.format(27.658,'GB')
'27.7GB'
序列:列表+元组+字符串
-
列表、元组、字符串的共同点:
-都可以通过索引得到每个元素
-默认索引值总是从0开始
-可以通过分片的方式得到一个范围内的元素的集合
-有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符) -
**list()**可迭代对象变为列表
b='I love you'
>>> b=list(b)
>>> b
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'y', 'o', 'u']
新建–循环—列表
- **tuple([iterable])**可迭代对象变为元组
- **str(obj)**吧obj对象转换为字符串
- len(sub)返回长度
- max()返回参数或者序列集合最大值
- min()返回参数或者序列集合最小值
- sum(iterable[,start=0])返回序列interable和可选参数start的总和,ps:用于字符类型(整数、浮点类型)
- sorted()
使用上面内置函数,序列都要是同类型 - reversed()
- enumerate()
- zip()
>>> a=[1,2,3,4,5,6,7,8]
>>> b=[4,5,6,7,8]
>>> zip(a,b)
<zip object at 0x0000016C5DF139C0>
>>> list(zip(a,b))
[(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]
字典:{}
dict{}
- 基本概率
单词:key键
含义:value值
映射
- 创建和访问字典
dict1={'李宁':'一切皆有可能','耐克':'Just do it','阿迪达斯':'Impossible is nothing','鱼C':'haha'}
内置方法
- 工厂函数(类型)
example:
str();int();list();tuple();
fromkeys()
>>> dict1={}
>>> dict1.fromkeys((1,2,3))
{1: None, 2: None, 3: None}
>>> dict1.fromkeys((1,2,3),'Number')
{1: 'Number', 2: 'Number', 3: 'Number'}
–索引
[]
dict1.get()
成员 in/not in
-清空
字典名.clear()
- .copy
- .pop
- .popitem随机弹出
- .setdefault()
- .update
Set 集合**:{}**在我的世界里,你就是唯一
集合是一个无序的,不重复的,没有映射关系
num={1,2,3,4}
- 创建集合
set1=set({1,2,3,4,5})
- 如何访问集合的值
in /not in
内置方法 - .add
一次能增加一个元素 - .remove
不可变集合frozen:冰冻的,冻结的
-.update
-.remove
-.pop
num1=frozenset()
-深拷贝/浅拷贝
深拷贝:一个集合改变,另一个集合不会改变
import copy
copy.deepcopy()
函数
将完成一个任务的代码,打包
格式:
def 名字():
执行的操作
名字()
def 名字(参数):
执行的操作
模块
:是一个包含所有你定义的函数和变量的文件,后缀是.py。其可以被别的程序引用,以使用该模板中的函数等功能。
OS:Operating System操作系统