导航:首页 > 编程语言 > python偏移量

python偏移量

发布时间:2023-03-25 19:05:01

① 【技术贴】python数据类型之列表

列表是由一系列按特定顺序排列的元素组成的。在Python中,用[]来表示列表,并用逗号来分隔其中的元素。

我们可以创建包含字母,数字或者任何东西的列表。其中列表中的元素之间可以没有任何的关系。由于列表通常包含多个元素,再给创建的列表命名时,一般使用复数的名称,如names.

names = ["kitty","anne","jerry"]

print(names)

输出的结果为方括号[] 引号 '' 元素

['kitty', 'anne', 'jerry']

注意:列表的偏移量是从0开始的,而不是我们习惯的 1 开始

teacher=['七七','卡西','延君']

teacher[0]='七七'

teacher[1]='卡西'

teacher[2]='延君谈袜铅'

口诀:“左右空,取到头;左要取,右不取”

teacher=['七七','卡西','延君']

teacher[:2]=['七七','卡西']

格式:列表.append('元素名')

teacher=['七七','卡西','延君']

teacher.append('琦玉')  

# 结果为 teacher=['七七','卡西','延君','琦玉']

list.extend([元素1,元素2]):在list列表末端增加多个元素;

list.insert(元素序号,元素):在list列表任意位置增加一个元素

 

teacher=['七七','卡西','延君','琦玉']

del teacher[3]

# 结果为 teacher=['七七','卡西','延君']

>>> str=[0,1,2,3,4,5,6]

>>> del str[2:4] #删除从第2个元素开始,到第4个为止的元素(但是不包括尾部元素)

>>> str

[0, 1, 4, 5, 6]

>>> str=[0,1,2,3,4,5,6]

>>> del str

>>> str #删除后,找不到对象

Traceback (most recent call last):File "<pyshell#27>", line 1, in <mole>strNameError: name 'str' is not defined

注意:del是删除引用(变量)而不是删除对象(数好虚据),对象由自动垃圾回收机制(GC)删除。

 

1,a = list.count(元素):计算它的参数在列表中出现的次数,并将次数返回;

2,a = list.index(元素):返回它的参数在列表中的位置,返回元素序号;#若有多个元素相同,此为只返回首端起第一个。

3,a = list.index(元素, 序号1,序号2):在序号1和序号2范围内,返回列表中元素位置。 #若有多个元素相同,此为只返回首端起第一个。

4,list.reverse() == list[::-1]:将整个列表内元素反过含好来排列:[1, 2, 3, 4].reverse() == [4, 3, 2, 1];

5,list.sort():将所有元素,从小到大排列;

6.sorted方法

sorted返回一个有序的副本,并且类型总是列表,如下:

② python之time模块

time 模块常用的信正握与时间相关的类和函数:

time 模块的 struct_time 类代表一个时间对象,可以通过 索引和属性名 访问值。 对应关系如下:

索引 —— 属性 值
0 —— tm_year(年) 如:1945
1 —— tm_mon(月) 1 ~ 12
2 —— tm_mday(日) 1 ~ 31
3 —— tm_hour(时) 0 ~ 23
4 —— tm_min(分) 0 ~ 59
5 —— tm_sec(秒) 0 ~ 61
6 —— tm_wday(周) 0 ~ 6
7 —— tm_yday(一年内第几天) 1 ~ 366
8 —— tm_isdst(夏时令) -1、0、1

localtime() 表示当前时间,返回类型为 struct_time 对象 ,示例如下所示:

输出结果:

time()——返回当前时间的时间戳
gmtime([secs])——将时间戳转换为格林威治天文时间下的 struct_time,可选参数 secs 表示从 epoch 到现在的秒数,默认为当前时间
localtime([secs])——与 gmtime() 相似,返回当地时间下的 struct_time
mktime(t) localtime() 的反函数
asctime([t]) 接收一个 struct_time 表示的时间,返回形式为:Mon Dec 2 08:53:47 2019 的字符串
ctime([secs]) ctime(secs) 相当于 asctime(localtime(secs))
strftime(format[, t]) 格式化日期,接收一个 struct_time 表示的时间,并返回以可读字符串表示的当地时间
sleep(secs) 暂停执行调用线程指定的秒数
altzone 本地 DST 时区的偏移量,以 UTC 为单位的秒数
timezone 本地(非 DST)时区的偏移量,UTC 以西的秒数清答(西欧大部分地区为负,美国为正,英国为零)
tzname 两个字符串的元组:第一个是本地非 DST 时区的名滑庆称,第二个是本地 DST 时区的名称

基本使用如下所示:

strftime 函数日期格式化符号说明如下所示:

③ python列名称有中文括号怎么读取

一、萌新语法
输入和输出
print()

#打印括号的内容

#第一种:不带引号,让计算机读懂括号里的内容,打印最终的结果

>>>print(1+1)

#第二种:带单引号,计算机无须理解,原样复述引号中的内容

>>>print('秋水共长天一色')

秋水共长天一色

#第三种:带双引号,作用和单引号一样;当打印内容中有单引号时,可以使用双引号

>>>print("Let's go")

Let's go

>>> print('Let's go')

Let's go

#也可以使用转义字符+单引号(')来实现单引号

#第四种:带三引号,实现换行

>>>print('''python小课

最好的python课程''')
pyton小课

最好的python课程

# 采用转义字符"n"也可以换行

input()

#收集信息

>>>name = input('请输入你的forchange ID:')

# 使用变量赋值来获取输入的信息

变量的命名
1.只能是一个词;

2.只能包含字母、数字闹饥和下划线;

3.不能以数字开头;

4.尽量描述包含的数据内容;

5.不要使用python函数名和关键字。

>>>number = 34

>>>name = 'forchange'

>>>list_class = ['基础语法课程','爬虫分析初阶','爬虫分析进阶','自动化办公']

#以上number,name,list_class都是是变量名

条件判断
条件判断的解释:让计算机知道,在什么条件下,该去做什么。

单向判断
if…

#如果条件成立,就执行语句

>>>number = 6

>>>if number > 3:

... pirnt(number)

6

#注意格式!if后面要加冒号,同时执行语句要缩进四个空格。(空格和tab,我选空格?^^)

双向判断
if…else…

#条件成立执行if语句,否则执行else语句

number = 7

if number < 3:

pirnt(number)

else:

number = number - 3

print(number)

#结果输出为4

#if和else是同一层级,不需要缩进。if和else下的执行语句都需要缩进四个空格。

if…else…和if…if…的区别

#if…else…一个条件满足后就不会进行其他判断(if代表的条件和else代表的条件是互斥的)

#if…if…会遍历所有条件,一个条件无论满足还是不满足,都会进行下一个条件的判断

多向判断
if…elif…else

#三个及其以上条件的判断

grade = 65

if 80 <= grade <=100:

print('成绩优秀')

elif 60 <= grade < 80:

print('成绩中等')

else :

print('成绩差')

#结果输出为成绩中等

IF嵌套
if 嵌套

#使用if进行条件判断,还希望在条件成立的执行语句中再增加条件判断,即if中还有if,这两个if非平级

grade = 15

if 80 <= grade <=100:

print('成绩优秀')

elif 60 <= grade < 80:

print('成绩中等')

else :

print('成绩差')

if 20<= grade <60:

print('再努力一把,还有救!')

else :

print('你要比以前更努力才行,你可以的!')

#结果输出为:

成绩差

你要比以前更努力才行,你可以的!

#注意,嵌套的第二个if缩进了4个空格,表示不同的层级。

二、数据类型
数据类型
python常见的数据类型:字符串,整数型,浮点数,列表,字典,布尔值,元组。

最基本的数据类型有三种:

字符串str:用引号括起来的文本(如:'python'、'123'、'风变编程')

整数int:不带小数点的数字(如:-1、1、0、520、1314)

浮点数float:带小数点的数字,运算结果存在误差(如:-0.15、3.1415、1.0)

以下的数据结构会有一节或两节的课程介绍,可轻松上手。

列表list:是一种闷毕有序的集合,可以随时增加或删除其中的元素。标识是中括号[]。

元组tuple:一种类似列表的数据类型,但是不能被修改。

字典dice:全称为dictionary,使用键值对(蚂弯芹key-value)作为存储方式。标识是大括号{}。

布尔值bool:表示真假的数据类型,只有两个值,True和False。

数据的操作
字符串的拼接
初阶用法:使用 ' + ' 进行字符串的拼接

>>>print('风变'+'编程')

风变编程

>>>name = '酱酱'

>>>begin = '我叫'

>>>print(begin + name)

我叫酱酱

进阶用法:使用 ' % ' 进行字符串的拼接

>>>name = '《凤求凰》'

>>>number = 1

>>>print('司马相如以%d曲%s打动了卓文君' %(number,name))

司马相如以1曲《凤求凰》打动了卓文君

四则运算
运算符 表示 例子
+ 加 1 + 1 输出结果为2
- 减 1 - 1 输出结果为0
* 乘 3 * 2 输出结果为6
/ 除 2 / 1 输出结果为2
% 取模-返回除法的余数 5 % 2 输出结果为1
** 幂-返回x的y次幂 2 ** 3 输出结果为8
// 取整除-返回商的整数部分 11 // 2 输出结果为5
运算优先级:

与平时运算优先级一样:从左到右顺着来,括号里的优先算,乘除排在加减前。

数据转换
type()

#查看变量的数据类型

>>>who = 'xiaojiangjiang'

>>>print(type(who))

<class 'str'>

#结果显示这是一个字符串类型的数据

str()

#将其他数据类型强制转换为字符串

>>>begin = '我吃了'

>>>number = 1

>>>fruit = '个水果'

>>>print(begin + str(number) +fruit)

我吃了1个水果

#进行字符串拼接时,不同数据类型不能直接使用'+'连接,需要现将整数转化为字符串类型

int()

#将整数形式的字符串转化为整数(文本类字符串和浮点形式的字符串不能转化为整数)

#对浮点数直接抹零取整

>>>print(int(3.8))

3

float()

#将整数和字符串转换为浮点数(文字类字符串无法转换)

>>>print(float(8))

8.0

list()

#将数据转换为列表类型

>>>a = 'python小课'

>>>print(list(a))

['p', 'y', 't', 'h', 'o', 'n', '小', '课']

len()

#用于检查某个数据的长度

>>>bros = ['刘备','关羽','张飞']

>>>print(len(bros))

3

>>>emotion = 'happy'

>>>print(len(emotion))

5

数据的常用语法
列表语法
列表的操作可分为两种类型,一种类型为对列表元素的处理,另一种类型为对列表的处理,每种类型都有四种操作:提取,修改,增加,删除(取改增删)。

偏移量:对列表元素的位置编号。

#列表的偏移量从0开始计算

#如果要提取一段列表,需要使用切片的形式[a:b]:从a到b的元素,但不包括b(a <= X < b);冒号某侧如果没有数字,则全取

>>>list = ['松','竹','梅']

>>>print(list[0])

>>>print(list[1:2])

>>>print(list[:2])



['竹']

['松','竹']

#松,竹,梅三者的偏移量分辨是0,1,2。

列表元素的提取

>>>list = ['松','竹','梅']

>>>print(list[0])



>>>list = [['松','松树'],['竹','竹子'],['梅','梅花']]

>>>print(list[0][1])

松树

#嵌套列表的提取

列表元素的修改

>>>list = ['松','竹','梅']

>>>list[0] = '松树'

>>>print(list)

['松树', '竹', '梅']

列表元素的增加

append()

#是列表的方法,在括号内添加一个元素,可以将该元素添加到列表末尾

>>>list = ['松','竹']

>>>list.append('梅')

>>>print(list)

['松','竹','梅']

易错一:用append时不能对列表赋值

>>>list = ['松','竹']

>>>list = list.append('梅')

>>>print(list)

None

#第二行语法错误

易错二:append后面是小括号,而非中括号

>>>list = ['松','竹']

>>>list.append['梅']

>>>print(list)

TypeError: 'builtin_function_or_method' object is not subscriptable

#第二行语法错误

易错三:append不能一次添加多个元素

>>>list = ['松','竹']

>>>list.append('梅','岁寒三友')

>>>print(list)

TypeError: append() takes exactly one argument (2 given)

#第二行语法错误

列表元素的删除

del

#删除命令

易错一:每次只能删除一个元素,

易错二:删除多个元素时,要重新计算偏移量

>>>list = ['松','竹','梅']

>>>del list[0]

>>>print(list)

>>>del list[0]

>>>print(list)

['竹', '梅']

['梅']

列表的切片(即列表层面的提取,一次提取若干个元素)

>>>list = ['松','竹','梅']

>>>print(list[1:2])

>>>print(list[:2])

['竹']

['松','竹']

#注意:列表的切片提取出来的是列表

列表的修改

#同样是使用赋值语句,注意是对列表的赋值

>>>list = ['松','竹','梅']

>>>list[:] = ['岁寒三友']

#list[:]表示将列表的所有元素取出来

>>>print(list)

['岁寒三友']

#注意以下的错误做法:

>>>list = ['松','竹','梅']

>>>list[:] = '岁寒三友'

>>>print(list)

['岁', '寒', '三', '友']

列表的增加

列表的增加叫作列表的合并会更合理

#使用符号'+'

#符号'+'只能用在列表之间,不能用在列表和元素之间

>>>list1 = ['松']

>>>list2 = ['竹']

>>>list3 = ['梅']

>>>list = list1 + list2 +list3

>>>print(list)

['松', '竹', '梅']

列表的删除

del

#删除命令

>>>list = ['松','竹','梅']

>>>del list[:2]

>>>print(list)

['梅']

字典语法
字典数据的提取

#列表使用偏移量来提取,字典使用键来提取

>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}

>>>print(group['师父'])

唐三藏

字典数据的修改

>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}

>>>group['师父']='唐玄奘'

>>>print(group)

{'师父': '唐玄奘', '大师兄': '孙行者', '二师兄': '猪八戒', '沙师弟': '沙和尚'}

字典数据的增加

>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}

>>>group['白龙马']='敖烈'

>>>print(group)

{'师父': '唐三藏', '大师兄': '孙行者', '二师兄': '猪八戒', '沙师弟': '沙和尚', '白龙马': '敖烈'}

字典数据的删除

>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}

>>>del group['师父']

>>>print(group)

{'大师兄': '孙行者', '二师兄': '猪八戒', '沙师弟': '沙和尚'}

dict.keys()

#提取字典中所有的键

>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}

>>>print(group.keys())

dict_keys(['师父', '大师兄', '二师兄', '沙师弟'])

#打印出了所有字典的键,但是都是元组的形式

>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}

>>>print(list(group.keys()))

['师父', '大师兄', '二师兄', '沙师弟']

#通过list()函数将元组转化为列表的形式

dict.values()

#提取字典中所有的值

>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}

>>>print(group.values())

dict_values(['唐三藏', '孙行者', '猪八戒', '沙和尚'])

dict.items()

#提取字典中所有的键值对

>>>group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}

>>>print(group.items())

dict_items([('师父', '唐三藏'), ('大师兄', '孙行者'), ('二师兄', '猪八戒'), ('沙师弟', '沙和尚')])

产生布尔值的表达式
bool()

#检查数值的真假

>>>print(bool(1))

True

值本身作为条件

假的 其他都是真的
False True
0 5(任意整数)1.0(任意浮点数)
''(空字符串) '风变编程'(字符串)
[](空列表) [1,2,3]
{}(空字典) {1:'a',2:'b'}
None
比较运算符产生布尔值

运算符 释义 作用
== 等于 如果两侧的值相等,条件为真
!= 不等于 如果两侧的值不相等,条件为真
> 大于 如果左侧的值大于右侧,条件为真
< 小于 如果左侧的值大于右侧,条件为真
>= 大于等于 如果左侧的值大于或等于右侧,条件为真
<= 小于等于 如果左侧的值小于或等于右侧,条件为真
注意:运算符之间不用空格,不可以写成= =、> =
成员运算符产生布尔值

运算符 释义 作用
in 属于 如果值在指定序列里,条件为真
not in 不属于 如果值不在指定序列里,条件为真
逻辑运算符产生布尔值

运算符 释义 作用
and 且 连接两个布尔值,如果两个都为真,该条件才为真
or 或 连接两个布尔值,如果有一个为真,该条件即为真
not 非 反逻辑状态,a为True,not a则为False,反之亦然
三、循环
for循环
for循环的基本格式是:for…in…

#遍历字符串

>>>for i in 'coding':

... print(i)

c

o

d

i

n

g

#遍历列表

>>>for i in ['for','change']

... print(i)

for

change

for…in dict:

#遍历字典的键

>>>list = {1:'a',2:'b',3:'c'}

>>>for i in list:

... print(i)

1

2

3

for…in dict.values():

#遍历字典的值

>>>list = {1:'a',2:'b',3:'c'}

>>>for i in list.values():

... print(i)

a

b

c

for…in dict.items():

#遍历字典的键值对

>>>list = {1:'a',2:'b',3:'c'}

>>>for k, v in list.items():

... print(k)

... print(v)

1

a

2

b

3

c

range()函数

#range()有最基本的三种用法:range(b), range(a,b),range(a,b,c)。

#函数中各个数值的意义:a:计数从a开始。不填时,从0开始;b:计数到b结束,但不包括b;c:计数的间隔,不填时默认为1。

>>>range(5)

#计数依次为0,1,2,3,4

>>>range(1,5)

#计数依次为1,2,3,4

>>>range(2,8,2)

#计数依次为2,4,6

for…in range()

#处理指定次数的循环

>>>for i in range(3):

... print('第%d遍风变编程' %i)

第0遍风变编程

第1遍风变编程

第2遍风变编程

while循环
while循环

#当条件为真时,执行循环语句,只要条件为真,便会一直循环

>>>count = 3

>>>while count > 1:

... print('happy coding')

... count = count -1

happy coding

happy coding

while循环和for循环的区别:

#for擅长处理固定次,自动遍历各序列

#while处理不定次数的循环,条件为False便停止

循环进阶
break

#如果满足条件,则结束循环

>>>while True:

... print('happy coding')

... break

happy coding

#break会结束循环,如果只有前两行代码,会无限循环打印happy coding

>>>count = 3

>>>while count >1:

... print('happy coding')

... count = count - 1

... if count == 2: #当count等于2的时候,停止循环

... break

happy coding

#对比while循环的例子,我们发现这里只打印了一次happy coding

continue

#如果满足条件,则跳过当前循环的剩余语句,直接开始下一轮循环

count = 3

while count >1:

print('happy')

count = count - 1

if count == 2: #当count等于2的时候,跳过下列语句,重新开始新的一轮循环

continue

print('coding') #由于continue语句,coding只会打印一次

#打印的结果为:

happy

happy

coding

else

#无论是否进入循环,最后都会执行esle语句,除非执行break语句跳出循环

count = 3

while count >2:

print('在风变')

count = count -1

else: #无论是否进入循环都会执行else语句

print('happy coding')

#打印结果为:

在风变

happy coding

循环嵌套

#即循环中有循环

>>>for i in ['风变','编程']: #首先遍历列表元素

... for t in i: #然后遍历元素(字符串)

... print(t)









四、函数
函数基本知识
函数
函数是组织好的、可以重复使用的、用来实现单一功能的代码

函数类型可分为自定义函数和内置函数,自定义函数是需要自己定义,而内置函数是python内部已经定义好的函数,比如print()、input()等

函数定义的语法
def

#定义函数

return

#函数的返回值

#函数定义的格式

def 函数名(参数):

函数体

return 语句

#一个简单的例子

def math_func(x):

y = x + 5

print(y)

return y

math_func(2)

#打印结果为7

变量作用域
变量作用域可认为是变量作用的范围

全局变量:在全局内生效的变量

局部变量:只能函数内或者一定代码块内生效

global

#将局部变量转化为局部变量

python内置函数
五、类与对象
概念
类:具有相同属性和方法的对象的抽象

实例:类的个例

对象:Python中的对象是类和实例的集合,类可以看作是对象,实例也可以看作是对象

基本语法
class

#定义类,注意类名需要大写

class MyClass: #定义类MyClass

i =12345 #定义类的属性(变量)

def f(self): #定义类的方法

return('hello world') #执行这个方法会返回'hello word'这个字符串

x = MyClass() #创建类的实例x

print(x.i) #打印实例x的属性

print(x.f()) #打印实例x的f方法

#输出的结果为

12345

hello world

class A(B)

#定义B类的子类A类,A类具有B类的属性和方法,也将B类称为A类的父类

class SecondClass(MyClass):

pass

#定义SecondClass是MyClass的子类,SecondClass可以调用MyClass的属性和方法

x = SecondClass()

print(x.i)

print(x.f())

#输出的结果为

12345

hello world

class A(B, C)

#多重继承,A类同时是B类和C类的子类,A类在调用属性和方法的时候,会优先调用位于左侧的类

class B:

i = 123 #B类的属性是i=123

class C:

i = 12345 #C类的属性是i=12345

class A(B,C): #A类是B类和C类的子类

pass

x = A() #创建A类的实例x

print(x.i) #调用属性,会优先调用B类的属性

#结果输出为

123

def __init__(self):

#创建类的初始化方法,只要调用类,便自动调用初始化方法的语句,常用于创建实例属性

>>>class A:

... def __init__(self): #只要创建实例,便会自动执行初始化方法下的语句

... print('hello world')

>>>x = A()

hello world #只要创建实例就会调用方法,打印hello world

#对比以下没有初始化的方法:

>>>class A:

... def f(self):

... print('hello world')

>>>x = A()

#不使用初始化方法,创建实例无任何输出

super()

#在子类的方法里调用父类的方法,使子类的方法可以在继承父类方法的基础上进行扩展

123 def super(cls, inst): mro = inst.__class__.mro() return mro[mro.index(cls) + 1]
cls代表类,inst代表实例,可以看出上面的代码做了两件事:

· 获取inst的MRO列表。

· 查找cls在MRO的index,并返回它的下一个类,即mro[index + 1]

当你使用super(cls, inst)时,python会在inst的MRO列表上搜索下cls的下一个类。

六、模块与库
模块类型
内置模块

#python官方组织编写和维护的模块

自定义模块

#自己写代码,然后将代码块保存为 .py 文件

第三方模块

#从自定义模块而来,代码写作者公开自己的代码

#根据模块的组织形式的不同,也可分为单个模块文件、模块包、模块库

模块和模块对象导入方法
import A

#导入模块A

#现在可以调用模块里函数和变量,但是必须通过【模块名.函数名()】和【模块名.变量名】的方式调用

#创建类实例的时候,需要使用【实例名 = 模块名.类名()】进行创建,创建实例后调用类方法和属性可以使用【实例名.函数名()】和【实例名.变量名】

import A as a

#导入模块A,并将模块A重新命名为a

#调用模块中的类、函数和变量如上述操作一样

from A import B

#导入模块A中的对象B

#调用对象B中的函数和变量可以不加模块名

from A import B,C,D

#导入模块A中的多个对象B,C,D

from A import *

#导入模块A中的所有对象

if __name__=="__main__":

#当.py文件被直接运行时,if __name__=="__main__":之下的代码块将被运行

#当.py文件以模块形式被导入时,if __name__=="__main__":之下的代码块不被运行

七、文件读写
文件读写三步骤
第一步,打开文件

第二步,读(写)文件

第三步,关闭文件

打开文件语法
open(file, mode, encoding)

#打开文件

f = open('/letter.txt', 'r', encoding = 'UTF-8')

with open() as…

#使用这种方式打开文件,可以不使用close()关闭文件

with open('/letter.txt', 'r', encoding = 'UTF-8') as f:

读写模式mode

模式mode 操作 若不存在 是否覆盖
r 只能读不能写 报错 -
rb 二进制只读 报错 -
r+ 可读可写 报错 是
rb+ 二进制读写 报错 是
w 只能写不能读 创建文件 是
wb 二进制只写 创建文件 是
w+ 可读可写 创建文件 是
wb+ 二进制读写 创建文件 是
a 追加不能读 创建文件 否,追加写
ab 二进制追加不能读 创建文件 否,追加写
a+ 可读可写 创建文件 否,追加写
ab+ 二进制追加可读可写 创建文件 否,追加写
读写文件语法
read()

#读取文件内容

with open('/letter.txt','r',encoding = 'UTF-8') as f:

content = f.read()

#以字符串的形式读取文件内容,将文件内容赋值给变量content

readlines()

#以列表的方式读取文件内容

with open('/letter.txt','r',encoding = 'UTF-8') as f:

content = f.readlines()

#以列表的形式读取文件内容,将文件内容赋值给变量content

write()

#清空文件内容,并写入字符串入内容

with open('/letter.txt','r',encoding = 'UTF-8') as f:

f.write('python')

writelines()

#清空文件内容,以列表的方式写入

with open('/letter.txt','r',encoding = 'UTF-8') as f:

f.writelines('python')

关闭文件语法
close()

#关闭文件

csv文件读写的相关函数

reader()

#读取csv文件的函数

import csv #导入csv模块

with open('letter.csv') as f:

reader = csv.reader(f) #读取csv文件,将文件内容赋值到reader

writer()

#将内容写入csv文件

writerow()

#写入一行内容

writerows()

#一次写入多行csv文件

import csv #导入csv模块

with open('letter.csv','w',newline = '') as f:

writer = csv.writer(f) #写入csv文件

writer.writerow(['python小课','风变编程']) #写入一行内容

data = [['交互式学习','更简单'],['助教酱酱','为你答疑解惑']]

writer.writerows(data) #写入多行内容

os模块

os.getcwd()

#返回当前的工作目录

八、debug
try…except…语句

用于处理

for i in range(6):

try:

print(6/i)

#使用6依次除于0,1,2,3,4,5,并打印

except ZeroDivisionError

#除非发生ZeroDivisionError类型的错误,执行下列语句

print('0是不能做除数的!')

九、其他
str.spilt()

#返回一个由字符串内单词组成的列表

>>>'1,2,3'.split()

['1',',','2',',','3']

>>>'1,2,3'.split('?,')

['1','2','3']

random模块

#随机模块

import random

#需要先导入random模块,然后再调用相应方法

print(random.randint(1,10)) # 产生 1 到 10 的一个整数型随机数

print(random.random()) # 产生 0 到 1 之间的随机浮点数

print(random.uniform(1.1,5.4)) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数

print(random.choice('tomorrow')) # 从序列中随机选取一个元素

print(random.randrange(1,100,2)) # 生成从1到100的间隔为2的随机整数

转义字符

转义字符 意义
a 响铃(BEL)
b 退格(BS),将当前位置移到前一列
f 换页(FF),将当前位置移到下页开头
n 换行(LF),将当前位置移到下一行开头
r 回车(CR),将当前位置移到本行开头
t 水平制表(HT) (跳到下一个TAB位置)
v 垂直制表(VT)
代表一个反斜杠字符""
' 代表一个单引号(撇号)字符
" 代表一个双引号字符
? 代表一个问号
0 空字符(NUL)
ddd 1到3位八进制所代表的任意字符
xhh 1到2位十六进制所代表的任意字符
注意1:区分斜杠“/”和反斜杠“”,此处不可互换。注意2:以上表格内容也不需要硬记。

④ python下标是什么

PYTHON中的下标是理解为可迭代对象中的序列对象进行切片时以0为起点的偏移量。

⑤ Python序列,集合,映射在数据关系层面的含义是什么

序列:可通过偏移量来进行切片的对象。列表、元组、字符串都属于序列。

散列:无法通过偏移量来进行切片的对象。比如 集合、字典。

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

比如,列出班里所有同学的名字,就可以用一个list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']

>>> classmates

['Michael', 'Bob', 'Tracy']

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

>>> classmates = ('Michael', 'Bob', 'Tracy')

(5)python偏移量扩展阅读:

Python的表达式写法与C/C++类似。只是在某些写法有所差别。

主要的算术运算符与C/C++类似。+, -, *, /, //, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。>>, <<表示右移和左移。&, |, ^表示二进制的AND, OR, XOR运算。>, <, ==, !=, <=, >=用于比较两个表达式的值,分别表示大于、小于、等于、不等于、小于等于、大于等于。在这些运算符里面,~, |, ^, &, <<, >>必须应用于整数。

Python使用and, or, not表示逻辑运算。

is, is not用于比较两个变量是否是同一个对象。in, not in用于判断一个对象是否属于另外一个对象。

⑥ Python入门教程08——字符串操作

Python 提供了5个字符串操作符:in、空格、加号、星号和逗号。

字符串是字符的有序集合,可用in 操作符判断字符串包含关系,例如:

以空格分隔(或者没有分隔符号)的多个字符串可自动合并,例如:

加号可将多个字符串合并,例如:

星号用于将字符串复制多次以构成新的字符串,例如:

在使用逗号分隔字符串时,会创建字符串组成的元组,例如:

字符串是一个有序的集合,其中的每个字符可通过偏移量进行索引或分片。字符串中的字符按从左到右的顺序,偏移量依次为: 0 、 1 、 2 … len-1 (最后一个字符的偏移量为字符串长度减1);或者倒着排,为: -len … -2 、 -1 。索引指通过偏移量来定位字符串中的单个字符,例如:

通过索引可获得指定位置的单个字符,但不能通过索引来修改字符串。因为字符串对象不允许被修改,例如:

字符串的切片利用索引范围从字符串中获得连续的多个字符(即子字符串)。字符串切片的基本格式如下:

表示返回字符串x中从偏移量start开始,到偏移量end之前的子字符串。 start和end参数均可省略,start默认为0,end默认为字符串长度。例如:

默认情况下,切片用于返回字符串中的多个连续字符,可以通过步长参数来跳过中间的字符,其格式如下:

用这种格式切片时,会依次跳过中间step-1个字符,step默认为1。请看如下代码:

⑦ Python文件读取中:f.seek(0)和f.seek(0,0)有什么区别

seek(0)和f.seek(0,0)是没有区别的。

file.seek()方法标准格式是:seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。默认为0

whence 的默认参数是0。

whence 还有两种情况 是1,或者2:

1的时候,相对当前坐标的移动,可以是正的也可以是负的。

2的时候相对于文件结束的移动,通常应该是负的。

(7)python偏移量扩展阅读

python 文件读写操作:

读文件

打开一个文件用open()方法(open()返回一个文件对象,它是可迭代的):

>>> f = open('test.txt', 'r')

r表示是文本文件,rb是二进制文件。(这个mode参数默认值就是r)

如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在:

>>> f=open('test.txt', 'r')
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的

>>> f.close()

由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。

⑧ python中什么是序列,列表,元组,字符串,索引,区别是什么

python中什么是序列,列表档滑,元组,字符串,索引,区别是什么?

序列:可通过偏移量来进行切片的对象。列表、元组、字行塌腊符串都属于序列。
散列:无法通过偏移量来进行切片的对象。比如 *** 、字典

序列包括:列表、元组、字符串
列表:是最常用的数组,可以进行嵌套;
元组:相当于Enum,一旦创建,元组的值是不允许修改的;
字符串:顾名思义就是中英文字符以及标点符号等。
索引:序列中的每个元素被分配一个序号。注意索引默认从0开始。

python中列表,元组,字符串如何互相转换

python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示:>>> s = "xxxxx"
>>> list(s)
['x', 'x', 'x', 'x', 'x']
>>> tuple(s)
('x', 'x', 'x', 'x', 'x')
>>> tuple(list(s))
('x', 'x', 'x', 'x', 'x')
>>> list(tuple(s))
['x', 'x', 'x', 'x', 'x'] 列表和元组转换为字符串则必须依靠join函数

1. str转list
list = list(str)
2. list转str
str= ''.join(list)
3. tuple list相互转换
tuple=tuple(list)
list=list(tuple)

python中字符串方法isnumeric和isdigit的区别是什么

isdigit()
True: Unicode数字,byte数字衫毁(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)

⑨ Python字典的底层实现

字典是一种可变、无序容器数据结构。元素以键值对存在,键值唯一。它的特点搜索速度很快:数据量增加10000倍,搜索时间增加不到2倍;当数据量很大的时候,字典的搜索速度要比列表快成百上千倍。

在Python中,字典是通过散列表(哈希表)实现的。字典也叫哈希数组或关联数组,所以其本质是数组(如下图),每个 bucket 有两部分:一个是键对象的引用,一个是值对象的引用。所有 bucket 结构和大小一致,我们可以通过偏移量来读取指定 bucket。

定义一个字典 dic = {},假设其哈希数组长度为8。

Python会根据哈希数组的拥挤程度对其扩容。“扩容”指的是:创造更大的数组,这时候会对已经存在的键值对重新进行哈希取余运算保存到其它位置;一般接近 2/3 时,数组就会扩容。扩容后,偏移量的数字个数增加,如数组长度扩容到16时,可以用最右边4位数字作为偏移量。

计算键对象 name 的哈希值,然后比较哈希数组对应索引内的bucket是否为空,为空返回 None ,否则计算这个bucket的键对象的哈希值,然后与 name 哈希值比较,相等则返回 值对象 ,否则继续左移计算哈希值。

注意:
1.键必须为可哈希的,如数字、元组、字符串;自定义对象需要满足支持hash、支持通过 __eq__() 方法检测相等性、若 a == b 为真,则 hash(a) == hash(b) 也为真。

2.字典的内存开销很大,以空间换时间。
3.键查询速度很快,列表查询是按顺序一个个遍历,字典则是一步到位。
4.往字典里面添加新键可能导致扩容,导致哈希数组中键的次序变化。因此,不要在遍历字典的同时进行字典的修改。

⑩ seek函数用法python

参数offset--开始的偏移量,也就是代表需要移动偏移的字节数whence:可选,默认值为0。
给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
file.seek(off,whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。
如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。

阅读全文

与python偏移量相关的资料

热点内容
为什么我的世界天空服务器进不去 浏览:262
钉钉直播后的视频如何线上加密 浏览:503
听主的命令 浏览:208
全民上云时代云服务器 浏览:519
iphone不创建id如何下载app 浏览:972
windowsphp扩展安装 浏览:93
emacslinux配置文件 浏览:379
python3在线教程 浏览:114
不小心删文件夹的文件 浏览:480
java获取手机IP 浏览:816
手机rar解压密码获取 浏览:344
程序员被辞退工资怎么处理 浏览:494
恋活的模型没加密 浏览:159
如何把安卓机的微信转移苹果 浏览:583
爬山算法相关题目 浏览:724
vc编程大全 浏览:118
excel表格单列数据加密 浏览:650
给同事的解压话语 浏览:994
linux关闭网卡命令行 浏览:456
史上最漂亮程序员 浏览:771