Python

发布于 2022-05-01  153 次阅读


基本数据类型

  • int
  • float
  • string

重要数据类型

String字符串

创建字符串,单引号和双引号都可以

var1 = 'hello world'
var2 = "runoob"

截取字符串

变量[头下标:尾下标]
需要注意的是,截取的数据是从“头下标”到“尾下标的前一位”。下标从左开始,则是从0开始递增;从右开始,则是从-1开始递减。

#!/usr/bin/python3
 
var1 = 'Hello World!'
var2 = "Runoob"
 
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])


结果
var1[0]:  H
var2[1:5]:  unoo

字符串可以直接使用“+”拼接

List列表

list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推;索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。


#!/usr/bin/python3
 
list = ['Google', 'Runoob', "Zhihu", "Taobao", "Wiki"]
 
# 读取第二位
print ("list[1]: ", list[1])
# 从第二位开始(包含)截取到倒数第二位(不包含)
print ("list[1:-2]: ", list[1:-2])


list[1]:  Runoob
list[1:-2]:  ['Runoob', 'Zhihu']

更新列表

append()


#!/usr/bin/python3
 
list = ['Google', 'Runoob', 1997, 2000]
 
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
 
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1)


第三个元素为 :  1997
更新后的第三个元素为 :  2001
更新后的列表 :  ['Google', 'Runoob', 'Taobao', 'Baidu']

删除列表元素

list = ['Google','Runoob',1997,2000]
del list[2]
print("删除第三个元素 : ", list)


原始列表 :  ['Google', 'Runoob', 1997, 2000]
删除第三个元素 :  ['Google', 'Runoob', 2000]

常用函数

  • len(list) 返回列表元素个数
  • max(list) 返回列表元素最大值
  • min(list) 返回列表元素最小值
  • list(seq) 将元组转化为列表

常用方法

  • list.append(obj) 在列表末尾添加新的对象
  • list.count(obj) 统计某个元素在列表中出现的次数
  • list.extend(seq) 在列表的末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
  • list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
  • list.insert(index, obj) 将对象插入列表
  • list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
  • list.remove(obj) 移除列表中某个值的第一个匹配项
  • list.reverse() 反向列表中元素
  • list.sort(key=None, reverse=False) 对原列表进行排序
  • list.clear() 清空列表
  • list.copy() 复制列表

Tuple元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号 ( ),列表使用方括号 [ ]。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

>>> tup1 = ('Google', 'Runoob', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5 )
>>> tup3 = "a", "b", "c", "d"   #  不需要括号也可以
>>> type(tup3)
<class 'tuple'>

创建空元组

tup1 = ()

注意,元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用

>>> tup1 = (50)
>>> type(tup1)     # 不加逗号,类型为整型
<class 'int'>

>>> tup1 = (50,)
>>> type(tup1)     # 加上逗号,类型为元组
<class 'tuple'>

修改元组

元组中的元素值是不允许修改的,但是可以元组进行连接组合

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

所谓元组的不可变指的是元组所指向的内存中的内容不可变。重新赋值的元组tup,绑定到新的对象了,不是修改了原来的对象。

>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')
>>> tup[0] = 'g'     # 不支持修改元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup)     # 查看内存地址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # 内存地址不一样了

常用函数

  • len(tuple) 计算元组元素个数
  • max(tuple)
  • min(tuple)
  • tuple(iterable)

Dictionary字典

格式:d = {key1 : value1, key2 : value2, key3 : value3 }

tinydict = {'name': 'runoob','likes': 123,'url': 'www.runoob.com'}

创建空字典

emptyDict = {}
emptyDict = dict()

访问字典里的值

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

修改字典

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程"  # 添加信息
 
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School']

常用函数

  • len(dict) 计算字典元素个数,即键的总数
  • str(dict) 输出字典,可以打印的字符串表示
  • type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型

常用方法

  • dict.clear() 删除字典内的所有元素
  • key in dict 如果键在字典dict里返回true,否则返回false

Set集合

创建集合,需要注意的是,集合自带去重功能,重复的元素将不会被显示

parame = {val1,var2,...}
set(value)
#创建空集合
set()

常用方法

  • set.add(x)
  • set.remove(x)
  • set.clear()

条件控制

一般形式

if conditon_1:
    statement_block_1
elif condition2:
    statement_block_2
else:
    statement_block_3

循环语句

while

while conditions:
    statements
count = 0
while count < 5:
    print (count, "小于5")
    count = count + 1
else
    print (count, "大于或等于5")

for

for var in seq:
    statement
else
    statement

range函数

>>>for i in range(5):
...     print(i)
...
0
1
2
3
4

指定循环的区间,注意,仍然知道范围的前一个数


>>>for i in range(5,9) :
    print(i)
 
    
5
6
7
8
>>>

制定具体的步长


>>>for i in range(0, 10, 3) :
    print(i)
 
    
0
3
6
9
>>>

函数

语法

def 函数名(参数列表):
    函数体

#!/usr/bin/python3
 
def max(a, b):
    if a > b:
        return a
    else:
        return b
 
a = 4
b = 5
print(max(a, b))

lambda函数(匿名函数)

语法

lambda [arg1 [,arg2,.....argn]]:expression
x = lambda a : a + 10
print(x(5))

map()

语法

map(函数名,一个或多个序列)
结果返回到迭代器
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
mod2_all = map(lambda a: a%2, numbers)
out = list(mod2_all)#输出结果需要转化为列表才能显示
print(out)

filter()

语法

用于滤掉特定元素
filter(函数,序列)
结果返回到迭代器
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
even = filter(lambda a: a%2 == 0,numbers)
print(list(even))

reduce()

用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

import numpy as np
from functools import reduce

np.random.seed(123)
numbers = np.random.randint(0,5,size=(10,))
print(numbers)

c = reduce(lambda x, y: x+y,numbers)#实现累加求和
print(c)

d = reduce(lambda x, y: x if x<y else   y, numbers)
print(d)

文件处理

#!/usr/bin/python3

# 打开一个文件
f = open("/tmp/foo.txt", "w")

f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )

# 关闭打开的文件
f.close()


追求理性 独立思考 不做韭菜