暑期认知实习学校安排学习Python,为了让自己更好的巩固,将上课讲的代码和笔记放在CSDN上,也供同学们一起参考学习 其中.join,split(),strip()方法还未能讲述到,后期自己需要多看看。除此之外还学到要想输出转义符可以在字符串前面加r,例如print(r"\t")可以将\t输出。
目录
变量
1、整型 (int) 值为整数,可正可负
2、浮点型 (float) 的取值为小数,当计算有精度要求时被使用,由于小数点可以在相应的二进制的不同位置浮动,故而称为浮点数
3、字符串 (str) 字符串是以两个单引号或两个双引号包裹起来的文本。和java,c中字符串为string不同,空格也算一个字符哦。比如 \n 表示换行, \t 表示制表符,Python还允许用 r“ ” 表示“ ”内 部的字符串默认不转义
4、布尔型 (bool) 只有True和False (在我理解就是逻辑运算的问题)布尔值可以进行 and 、 or 和 not 运算, and 和 or 运算分别用 & 和 | 表示。PS:特此提示&和&&区别:如果&前为False则直接认为False不会对&后面的逻辑表达式进行判断直接,|和||同理,前为True就直接认为True。
5、空值 Python里一个特殊的值,用 None 表示,一般用None填充表格中的缺失值
6、使用 type() 函数来获取某值的类型,除了使用 type() 外,我们还可以使用 isinstance() 来判断数据类型
7、类型转换 函数 int()、float()、str() 和 bool() 分别用于将变量转换 成整型、浮点型、字符串和布尔型变量 PS:某些变量无法转换成数值型变量 例如字符型不能转换成整型
#变量测试
x="KKK"
print(x,type(x))
print("今天天气很闷热\t昨天也是")
print("今天很想你\n昨天也是")
print(5>1)
print(5**3)
print(5/3)
print(5//3)
print(1/2.0)
print(isinstance(5,str))
#结果
KKK <class 'str'>
今天天气很闷热 昨天也是
今天很想你
昨天也是
True
125
1.6666666666666667
1
0.5
False
二元数学运算符
数据的容器
1、列表(list)
列表(list)是一个有序的序列结构,序 列中的元素可以是不同的数据类型,列表可以进行一系列序列操作,如索引、 切片、加、乘和检查成员等
创建列表时将列表中的各元素用逗号分隔开,并用中括号将所有元素包裹起来
可以使用append()方法再列表末尾添加数据元素
remove()方法适用于知道要删除的值的情况,当我们不知道具体元素值, 但是知道元素的索引位置时,我们可以使用 del 函数配合列表索引,删 除索引位置的元素或者使用 pop()方法
通过 insert() 方法在指定的索引位置添加数据元素
列表索引:Python语言中所有的索引都是从 0 开始计数的,如果列表中有 n 个元素, 那么最后一个元素的索引是 n-1
列表长度:Python内置的用于判断列表长度的函数为 len()
切片操作:
逻辑上理解为左闭右开,即[x,y)。不输入步长,默认步长为1
逆向切片:
倒数第一个元素索引为-1。我们可以省略起始索引位置,表示从最开始进行切片,当我们将两个索引都省略之 后,我们将按原样复制一个列表,如果想要将列表的顺序颠倒,则可以使用::-1
嵌套:
列表中的元素也可以是列表,这样可以将列表看成更高维的数组
#列表
LPL_list = ['RNG',"FPX","LNG",1]
'''
获取索引位置
如果有N个相同的元素只返回第一个
如果查询的元素不在列表,则抛出ValueError
还可以指定在start和stop里查询
'''
print('-------列表---------')
print(LPL_list.index('RNG'))
# print(LPL_list.index('111'))
print(LPL_list.index('FPX',0,2))
print('FPX' in LPL_list)#是否存在
print('EDG' not in LPL_list)
#for列表元素遍历
for item in LPL_list:
print(item)
print(LPL_list)
print(type(LPL_list))
print('--------添加操作--------')
LPL_list.append("IG")
print(LPL_list)
LDL=['IGY','FBX']
print('--------以列表的形式作为元素添加到列表--------')
#LPL_list.append(LDL) 以列表的形式作为元素添加到列表LPL_list.extend(LDL)
#把LDL每一个元素分别添加到末尾
print(LPL_list)
print('--------修改操作--------')
LPL_list[1]='V5'#单个元素修改
LPL_list[3:5]=['RW','SN']#多个元素修改
print(LPL_list)
print('--------删除操作--------')
LPL_list.remove("SN")
print(LPL_list)
LPL_list.pop(-2)
LPL_list.pop()#如果不指定索引默认删除最后一个元素
print(LPL_list)
print('--------插入操作--------')
LPL_list.insert(0,5)
print(LPL_list)
print(len(LPL_list))
print('--------切片操作--------')
print('原列表',LPL_list)
print('切片后',LPL_list[1:3])
#不产生新的列表对象,而是删除原列表中的内容
LPL_list[2:4]=[]
print(LPL_list)
print('--------切片替换--------')
#把切片的部分用新的列表替换
LPL_list[1:]=LDL
print(LPL_list)
print('--------列表排序--------')
lst=[20,40,10,33]
print('原来',lst,'id为',id(lst))
#调用对象的ssort方法,默认升序排序
lst.sort()
print('升序排序',lst,'id为',id(lst))
#通过指定关键字参数,将列表中的元素进行降序排序
lst.sort(reverse=True) #reverse=False则是升序
print('降序排序',lst,'id为',id(lst))
print('--------使用内置函数sorted()进行排序,会产生一个新的列表对象--------')
new_lst=sorted(lst)
print(new_lst,'id为',id(new_lst))
desc_list=sorted(lst,reverse=False)
print(desc_list,'id为',id(desc_list))
print('--------列表生成式--------')
let=[i for i in range(1,10)]#i为列表元素的表达式
print(let)
letc=[i*i for i in range(1,10)]#i*i为列表元素的表达式
print(letc)
print('--------clear清除和del删除对象--------')
LPL_list.clear()
print(LPL_list )
del LPL_list
print("****结束****")
#结果
-------列表---------
0
1
True
True
RNG
FPX
LNG
1
['RNG', 'FPX', 'LNG', 1]
<class 'list'>
--------添加操作--------
['RNG', 'FPX', 'LNG', 1, 'IG']
--------以列表的形式作为元素添加到列表--------
['RNG', 'FPX', 'LNG', 1, 'IG', 'IGY', 'FBX']
--------修改操作--------
['RNG', 'V5', 'LNG', 'RW', 'SN', 'IGY', 'FBX']
--------删除操作--------
['RNG', 'V5', 'LNG', 'RW', 'IGY', 'FBX']
['RNG', 'V5', 'LNG', 'RW']
--------插入操作--------
[5, 'RNG', 'V5', 'LNG', 'RW']
5
--------切片操作--------
原列表 [5, 'RNG', 'V5', 'LNG', 'RW']
切片后 ['RNG', 'V5']
[5, 'RNG', 'RW']
--------切片替换--------
[5, 'IGY', 'FBX']
--------列表排序--------
原来 [20, 40, 10, 33] id为 2036603343880
升序排序 [10, 20, 33, 40] id为 2036603343880
降序排序 [40, 33, 20, 10] id为 2036603343880
--------使用内置函数sorted()进行排序,会产生一个新的列表对象--------
[10, 20, 33, 40] id为 2036603343816
[10, 20, 33, 40] id为 2036603343752
--------列表生成式--------
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
--------clear清除和del删除对象--------
[]
****结束****
Process finished with exit code 0
2、元组(tuple)
元组(tuple)数据结构与列表类 似,其中元素可以有不同的类型 ,但是元组中的元素是不可变的, 即一旦初始化之后,就不能够再做修改
由于元组是不可变的,因此元组对 象没有append()、insert()和del这样 的方法
元组的使用可以使得代码 更安全,防止错误赋值导致重要对象的改变
#元组的结构和列表类似,但是元组中的元素是不可变的,一旦初始化就不可以修改
print('--------元组的创建方式--------')
LPL_tuple = (1,"TES")
print(LPL_tuple)
LDL=tuple((1,5,'K'))
print(LDL)
#只包含一个元组的元素需要使用逗号和小括号
t=('PY',)
print(t,type(t))
#空元组创建方式
t1=()
t5=tuple()
print('空元组',t1)
print(t5)
print('--------元组元素引用不可以修改,但是可变对象数据的值可以修改--------')
t7=(10,20,[25,36])
print(type(t7[0]),id(t7[0]))
print(type(t7[2]),id(t7[2]))
#元组元素的引用不可以改变,如果元素的对象是可变的那么可以修数据的值
t7[2].append(77)
print(type(t7[2]),id(t7[2]))
print(t7)
for item in t7:
print(item)
#结果
--------元组的创建方式--------
(1, 'TES')
(1, 5, 'K')
('PY',) <class 'tuple'>
空元组 ()
()
--------元组元素引用不可以修改,但是可变对象数据的值可以修改--------
<class 'int'> 1558736224
<class 'list'> 1764504670024
<class 'list'> 1764504670024
(10, 20, [25, 36, 77])
10
20
[25, 36, 77]
3、字典(dict)
字典(dict)在其他语言中被称作哈希映射(hash map) 或者相关数组(associative arrays) 字典是一
种大小可变的键值对集,其中的键(key)和值(value)都是Python对象(字典用在需要高速查找的地方)
字典的创建使用大括号 {} 包含键值对,并用冒号 : 分隔键和值,形成键:值
LPL_dict = {2:"LNG",1:"FPX",3:"RNG"}
print(LPL_dict)
#结果
{2: 'LNG', 1: 'FPX', 3: 'RNG'}
利用for循环和zip()函数创建字典。zip()函数用于将多个序列(列表、元组等)中的元素配对,产生一个如 [(列表1元素,列表2元素),(,)] 的新的元组列表;for循环用于重复执行将值放入键中的操作。
ID = [1,2,3]
CLUB = ["LNG","FPX","EDG"]
RANK_dict = {}
for key, value in zip(ID,CLUB):
RANK_dict[key]=value
print(RANK_dict)
#结果
{1: 'LNG', 2: 'FPX', 3: 'EDG'}
字典的元素访问(以及插入、设置)方式与列表和元组一样。不同的是,列表和元组 的索引号是按照顺序自动生成,而字典的索引号是键。字典中某值的索引还可以通过 get 方法,如果字典不包含某个键,可以返回 None,或者自己指定的值。我们可以通过 in 判断是否存在某个键,其语法跟在列表和元组中判断是否存在 某个值是相同的。如果不太确定字典中有哪些键或者值,我们可以使用 keys() 方法或者values()方 法
print(RANK_dict.get(1))
print(1 in RANK_dict)
print(RANK_dict.keys())
print('values are:',RANK_dict.values())
#结果
LNG
True
dict_keys([1, 2, 3])
values are: dict_values(['LNG', 'FPX', 'EDG'])
items() 方法:该方法将返回所有键值对,并将其保存在一个元组列表(列表中的元素为元组)中
print(RANK_dict.items())
#结果
dict_items([(1, 'LNG'), (2, 'FPX'), (3, 'EDG')])
字典的删减有三种方法 del、pop()、clear()
'''
字典的删减有三种方法
使用 del 函数对单一元素或者整个字典进行删除
使用 pop() 方法删除单一元素
使用 clear() 方法清空词典的所有元素
'''
del RANK_dict[1]
print(RANK_dict)
RANK_dict.pop(2)
print(RANK_dict)
RANK_dict.clear()
print(RANK_dict)
#结果
dict_items([(1, 'LNG'), (2, 'FPX'), (3, 'EDG')])
{2: 'FPX', 3: 'EDG'}
{3: 'EDG'}
{}
4、集合
集合(set)是一种无序集,它是一组键的集合,不存储值。在集合中,重复的键是不被允许的。集合可以用于去除重复值。集合也可以进行数学集合运算,如并、交、差以及对称差等。
集合的创建有两种方式:使用 set() 函数或者使用大括号{}。需要注意的是,创建空集合,必须使用 set() ,而不是{},因为{}表示创建一个 空的字典
LPL_set = set() #需要注意的是,创建空集合,必须使用 set() ,而不是{},因为{}表示创建一个 空的字典
LPL_set = {"FPX","RNG","LNG"}
print(LPL_set)
#结果
{'FPX', 'RNG', 'LNG'}
集合支持数学集合运算,如并、交、差以及对称差等
注释
多行注释使用连续单个单引号或者双引号 单行注释用#
'''
这是一行注释
'''
#测试