学习第三章,Python学习笔记

源代码是那般:

ord() expected string of length 1, but int found,ordexpected

源代码是那样:

s=b’^SdVkT#S ]`Y\\!^)\x8f\x80ism’
key=”
for i in s:
     i=ord(i)-16
     key+=chr(i^32)
print (key)

运维后出现了难题:ord() expected string of length 1, but int found

从而出现这么些难题,是在字符串转换进度中出现了1个小错误,在一层层百度和谷歌(Google)后,发现概念照旧很迷糊,不过在曙光大佬的解答后,精通了怎么处理,便是在s后加””,运转后发现完美化解

) expected string of length 1, but int
found,ordexpected 源代码是那样: s=b’^SdVkT#S
]`Y\\!^)\x8f\x80ism’ key=” for i in s: i=ord(i)-16 key+=chr(i^32)
print (key) 运行…

壹 、基础小知识

壹 、Python是一种脚本语言,源文件一般以.py作为扩展名,其运行格局与java类似,都以编写翻译成字节码后再解释施行的

② 、Python2.x与Python3.x是不包容的,可是2.x出于丰盛成熟,第壹方库丰硕,由此,应该依照须求选取,两者并不冲突

③ 、Python的IDE不像Ms的VS环境那样,独一无二的好用的工具,一般是IDLE只怕PythonWin以及其余部分开源的工具,可能就一直动用交互式命令行

四 、注意,由于Python是解释性脚本语言,因而,既能够写成一个剧本文件全部实施,也可以在交互式命令环境中部分执行

⑤ 、在cmd命令提示符中,输入python –V能够查阅当前运作的python版本

⑥ 、Python可以在同等行写入多条语句,使用分号隔绝即可

七 、若一行语句过长,供给折行继续,则可以选拔反斜杠\分隔,这个与C++一样

八 、Python脚本代码能够一向在Shell中运维

⑨ 、倘诺要从三个剧本文件运营,例如在D盘下创办3个main.py文件,其中输入代码print(“nihao”,”wohao”),然后进入到命令提醒符,进入到D盘目录下,输入指令python main.py,即可运营脚本。很多Python脚本文件都会在首先行钦赐解释器的岗位,不过,注意,真正正确的写法是:#!/usr/bin/envpython

元组能够被认为是只读列表

s=b’^SdVkT#S ]`Y\\!^)\x8f\x80ism’
key=”
for i in s:
     i=ord(i)-16
     key+=chr(i^32)
print (key)

贰 、开发工具

壹 、PYPI,也即python package
index,是python官方的第壹方库的堆栈,官方推荐应用pip进行李包裹的下载管理,pip也正是是linux中的yum,apt-get那样的工具,pip供给较高版本的python环境辅助,所以,尽量使用较高的版本

② 、Python的IDE工具拾分的多,除了自带的IDLE外,还有很多,甚至一些商业贸易的工具,有一对跨平台的工具使用JAVA开发的,所以会需求有JVM,就自作者个人来说,写一些代码应用IDLE相比多,很有益,假若是明媒正娶开发,则应用pycharm,那是一个收费的工具,可是很好用

Python字典:

运转后边世了难点:ord() expected string of length 1, but int found

③ 、注释及分外运算符

1、#用来表示注释一行,从#开始到这一行终止都意味被诠释

二 、加减乘除以及取模运算符都以跟C一样的,那Ritter别介绍除法和乘方操作符

③ 、使用三重引号能够开始展览多行注释,只要不将那个字符串赋值给三个变量,都会被当成三个申明,能够是四个单引号,也得以是几个双引号那样的三重引号情势,三重引号的字符串是足以赋值给变量的,会保留字符串中具备的格式

④ 、在Python中,能够动用分号;将八个语句放在一行上,但是不提出如此做

伍 、for循环,while循环,if语句的标准化都无须放在小括号中,函数定义时,参数须求放在小括号中

Python字典是一种哈希表型。他们像提到数组或哈希在Perl中千篇一律,由键 –
值对构成。字典键差不离能够是任何Python类型,但平日是数字或字符串。值可以是任意Python的对象。

故而出现那个难点,是在字符串转换进度中冒出了一个小错误,在一星罗棋布百度和谷歌后,发现概念依然很迷糊,可是在曙光大佬的解答后,理解了怎么处理,便是在s后加””,运营后发觉完美化解

肆 、变量类型

  4.1主导规则

        I、Python是动态类型语言,不需求在行使变量在此以前先定义变量类型
 ,当给
Python 中的变量赋不一致体系的值时,变量展现差别的系列,例如aa=”nihao”,此时aa是字符串类型;aa=45,则此时aa是数字类型

       
II、Python是二个强类型的言语,注意不要跟上边的动态类型搞混了,类似2+”2”那样的乘除是会报错的,Python并不会进展自动的转换。事实上,强类型是指变量必须有显式的品类,无论这么些项目是机关申明照旧人造注明的,弱类型语言不要求证明类型

        III、变量只可以以字母或下划线起头,变量名没有长度限制

       
IV、在Python中,一切都以对象,包涵主题数据类型例如int\float\string,例如x=100,注意,由于x是三个对象,由此x只是指向了100以此数值,而并不是x本人存款和储蓄了100

4.2接连赋值

     
 I、举例:x,y=34,56,通过那样的语法能够而且给x,y赋值,多少个延续的变量可以赋差异体系的值,以上述为例,x,y=y,x,通过如此的语法还足以一贯调换x与y变量的值

4.3数据类型

  4.3.1 数值类型

   
 I、int、float、long、bool,注意还一贯辅助complex类型,那是复数类型,Python中央直机关接做了支撑,果然是爽啊,不用再本人写类了,定义情势是x=2+3j,注意那里的j是语法的一局部,不可能改成其余字母。

     II、查看变量类型:通过type(变量名)能够查阅,比如type(x)

   4.3.2 Decimal类型

     
I、这些类型称之为十进制数据类型,在尤其介绍这么些项目在此以前,先看三个事例,dd=0.1+0.2,猜猜结果是稍稍,你肯定觉得是0.3呢,呵呵,请看:0.三千0000000000004,是的,你从未眼花,就是那些值,为何吗,因为0.1和0.2都以float类型,这几个类型存款和储蓄的是近似值而不是纯正的值,那么decimal类型正是提供高精度数字的一个品类,可是Decimal并不会安置类型,使用前须求引入decimal模块,看三个例子:

import decimal#引入decimal包

>>>

cc=decimal.Decimal(0.1) #专注后边的Decimal类型D是大写的

>>>dd=decimal.Decimal(0.2)

>>>ee=cc+dd

>>>ee

Decimal(‘0.30000’)#能够看看,输出了0.3

Decimal类型能够设置精度范围:>>> decimal.getcontext().prec=1

将小数位设置为壹位精度

  4.3.3 数值总结

    / – Float Division,重临3个浮点数类型

   // – Integer Division,重临商的整数部分

    注意,//并非一早就协助的运算符

4.3.4 字符串类型

 
 I、Python中的字符串能够放在双引号中,也得以置身单引号中,也足以置身三引号中(没错,你没看错,是三引号)

学习第三章,Python学习笔记。 
 II、单引号与双引号字符串的用处基本一致,如若字符串中留存单引号则字符串能够放在双引号中,反之也是

   III、单或双引号表示的字符串,再必要换陶文写时,供给换行符号\,例如:
       

           abc=”acd\

           jkk”

           此时,abc的值是”acdjkk”,注意,换行符与在此之前的串之间不要求空格

   
IV、对于三引号的字符串,首先是能够一直换行的,不用选择换行符;此外在字符串中能够放入单引号,双引号等标志;所谓的三引号,能够是这么的”””,也足以是如此的’’’

4.3.5字符串特点

I、字符串一旦创设就不可能被涂改,只好一向新建

Str1=”nihao”

Str1+=”mike”#到这一步,id(Str1)的地点已经是3个新地点了,等于是

#新建了一个字符串

那实在也是一种预防内存覆盖的法门

4.3.6字符串操作

I、加号+用于字符串连接;

Str1=”hello”+”nihao”或者

Str1+=”end string”

II、星号*用于重复字符串

Str1=”nihao”*3

返回”nihaonihaonihao”

III、字符串切片

s=”welcome”

语法:s[start:end],再次回到从索引start到索引end-1的子串

譬如说字符串str=”welcome”,str[0:2]则返回”we”

start或然end可以不填写,则暗中认可start为0,end为最后,可能说将来平昔取值到末了

若end为负数,比如s[0,-1]则意味从索引0起首,去除掉最后一个人字符

负几便是以前面开端去除掉3个人字符

例如:str[0:-1]返回”welcom”

Str[0:-3]返回”welc”

IV、取得ASCII码

ord(“a”)ord(“\n”)ord(“ “)

参数中的字符串能够是单引号、双引号、三引号的都能够,不过要小心只好放1个字符,不能够采用八个字符组成的字符串

V、通过ASCII码拿到字符

chr(97)返回’a’

llen(str)取得字符串长度

max(str)取得字符串中ASCII码最大的字符

min(str)取得字符串中ASCII码最小的字符

lin以及not in操作

用来判定在字符串中是或不是留存其余多少个串

“come” in “welcome”

返回true

“come” not in “welcome”

返回false

VI、字符串相比

可以选择>>=<<===!=举办比较

实际字符串比较的是各样字符的ASCII码,从左往右相比较

例如:str1=”green”str2=”glue”

则相比到r>l,由此str1>str2

VII、循环遍历

for iin str1:

print i

留意,暗中同意情形下是不可能帮忙汉语的

VIII、判断函数

isalnum()Returns True if string is alphanumeric

isalpha()Returns True if string contains onlyalphabets

isdigit()Returns True if string contains onlydigits

isidentifier()Return True is string is valid identifier

islower()Returns True if string is in lowercase

isupper()Returns True if string is in uppercase

isspace()Returns True if string contains onlywhitespace

IX、计算某些字符在字符串中出现的次数-count

Str=”nihaohello”

print Str.count(“o”)

总结字符o在Str中冒出的次数,再次来到2

ls.endswith(“”)s.startswith(“”)

看清字符串s是还是不是是以参数中的子串初始或收尾的

ls.find(“cc”)在s中查找cc出现的职责索引,搜索不到重返-1

s.rfind(“cc”)在s中从最左边伊始查找cc出现的目录,若s中有八个cc,则那里提供了探寻最左侧的cc的不二法门

ls.capitalize()

将字符串的首字母大写

ls.lower()s.upper()

将字符串变形为题写和题诗

ls.title()

将字符串中种种单词的首字母都大写

瞩目,唯有字符串中的每一种单词之间都用空格分隔才有效

s=”hello world”

s.title()

返回”HelloWorld”

ls.swapcase()

将字符串中的大写字母变成小写字母,反之变成大写字母

ls.replace(old,new)

s=”nihao”

s.replace(“n”,”J”)

返回”Jihao”

4.3.5 Lists类型

   
 l、列表,与C中的数组类似,使用中括号语法创设List,例如:List=[1,2,3,4,5],列表中的成分得以是分化类其他,这么些是与C数组十分大的不同,例如:List=[“nihao”,123,”hello”]

     II、列表能够嵌套,也即列表中能够再有列表

4.3.6 Lists创建

 I、除了上述的直白赋值创制格局,还有两种常用的点子

List1=list() #创建三个空驶列车表,当然也得以List1=[]那样创建空驶列车表

List2=list([23,34,45])

List3=list([“你好”,”hellow”,”myworld”])

下面两种艺术实际上是一样的,都是赋值法,只然而是置身了list()语句中了

也能够直接使用字符串来创建list4=list(“python”)

在此间能够见到,其实字符串就是二个列表

4.3.7 Lists访问

  I、访问方式与数组的中括号形式相同

str=[1,2,3,4,5]

str[0]则做客了第三个成分l也可以采取for遍历

>>> list4=list(“python”)

>>> for i in list4:

print i

  II、修改元素

List4[0]=345

列表是足以修改的,那几个是与字符串的异样

4.3.8 Lists通用操作

 
I、个人感觉,list与字符串万分相似,或许说,字符串其实便是列表,基于上述的理解,很多对于字符串的通用操作,对于列表也适用:

xins判断在列表s中是或不是留存成分x

x not in s判断在列表s中是还是不是不设有成分x

s1+s2串联四个列表,跟串联四个字符串一个意味

s1*n将s1复制n份然后串联起来

s[i]得到列表中有个别值,也能够因而这几个主意修改有些列表成分

s[i:j]跟取得子串七个意味

len(s)取得列表长度

min(s) max(s)取得列表中ASCII码最小和最大的成分

s1.count(e1)取得s1列表七月素e1油不过生的次数,

注意,与字符串不一致,列表中未必是字符,也说不定是数字,

于是e1的传参要看状态,比如s1=[1,2,3,1],则要计算成分1冒出的次数,语法为s1.count(1)

sum(s1)当列表s第11中学都以数字时,可以总括出数字合计值

4.3.9 Lists专用操作

s.append(23)

s.append(“nihao”)

用以在列表后附法郎素

s1.extend(s2)

将列表s2增大到s1前边,约等于列表串联

s1.index(“nihao”)

在s第11中学搜索第四回面世”nihao”的目录地方

s1.insert(1,“nihao”)

在列表索引1的地方插入1个要素”nihao”

s1.pop(index)

删除掉列表s第11中学索引位置为index的要素,并且再次来到

若index参数为空,则暗许处理列表最后3个要素

s1.remove(x)

从列表s第11中学删除第二次现身的成分x

s1.reverse()

反转列表s1

s1.sort()

鲁人持竿ASC规则排体系表中元素

4.3.10 Lists推导式

I、推导式也是布局列表的一种方法,一般情势为:

[表达式for变量in列表]以及

[表达式for变量in列表if条件]

可以认为,那是一种通过for语句成立列表的方法,通过1个表明式构造出一个列表,可能说是推导出1个列表

地点的表达式是经过for前面包车型地铁变量构造出来的,或然可以如此说,for前边是取值范围,表达式是对取值范围中的数据进一步加工而得出的列表

举例:

Str=[x for x in [1,2,3,4,5]]

得出的列表为[1,2,3,4,5]

Str=[x+1 for x in [1,2,3,4,5]]

得出的列表为[2,3,4,5,6]

Str=[xfor x in [1,2,3,4,5] if x%2==0 ]

此处只是对取值范围加了个标准

字典是由花括号括号({}),可分配值,并用方括号([])访问。例如:

4.3.11 字典定义

I、字典用来囤积键值对,类似于哈希表或然PHP中的关联数组,字典是能够被更改的语法看起来跟json极度相像,如下:Friends={‘tom’:’12’,’jerry’:’54’}

不等的键值对使用逗号分隔,key部分必须唯一无法重复

Key部分可以应用单引号也足以利用双引号也能够利用三重引号,Value部分也得以同时Value部分也得以是二个列表恐怕是另外贰个字典

lI、能够成立空字典myDic={}

4.3.12 字典处理

I、获得有个别key的值、修改以及新增

myDic[“key名”],通过那种语法能够取值也足以赋值

专注无法因而myDic[0]如此取值,必须通过key名来访问

若举办了赋值例如myDic[“newElement”]=678,则若myDic中不设有”newElement”这几个key,相当于给字典新增了key-value

II、删除有个别key值

del myDic[“keyName”]

III、循环字典

使用for循环

fori in myDic

print myDic[i]

实际,从那里也足以看来,python中的for循环已经内建了迭代器

假定那里的print是print i则会输出全数的key名

IV、通用处理

len(myDict)#赢得字典的尺寸,也即有多少个key

key名in

myDict key名not in

myDict #判定有些key是或不是在字典中

V、相比处理

在意,字典不像字符串能够展开超越小于那样的可比,可是足以拓展等于和不对等的比较,例如

d1= {“mike”:41, “bob”:3}

d2= {“bob”:3, “mike”:41}

>>>d1 == d2

True

>>>d1 != d2

False

>>

VI、专用处理

myDict.clear()#清空字典

myDict.get(key名)#收获字典中有些key名的value值

myDict.pop(key名)#删去有个别key名,并赶回相应的value值

myDict.popitem()#随意删除3个key,并赶回相应的值

4.3.13 元组定义

 
 I、元组与列表相当像,不过元组一旦创建,就不可能增加产量,删除,替换以及重复排序,由此,元组是无法被涂改的,那和列表以及字典都不平等

   II、元组能够一直开立,使用圆括号

          T1=()

          T1=(11,22,33)

         也足以采取列表和字符串来成立

         T1=tuple([1,2,3,4,5])

         T1=tuple(“nihao”)

          元组中也能够是字符串,不必然要都以数字,甚至能够是列表和字典

4.3.14 元组通用操作

 I、比如对于多少个元组

T1=(1,2,3,4,5)

len(T1)#赢得元组的长度

min(T1),max(T1)#收获元组中型小型小的和最大的因素

假定成分是字符串,则相比ASCII码

但是注意,对于sum(),唯有成分都是数字的元组才有效

II、循环

本条跟列表,字典一样,都以应用for循环处理

for i in t1:

print i

切片

此间与列表的拍卖也是如出一辙的

T1[0:2]则得到从索引0到1的元组数据,再次来到三个新的元组

III、取值

T1[0]赢得元组第四个因素

T1[1]收获元组第1个成分

in以及not in操作

2 in t1

3 not in t2

个别重临true和false

4.3.15 类型转换

I、Python中的类型转换都得以透过BIF处理

      a=10#int转换为float

     float(a)

     s=”123”#字符串转换为int

     int(s)

     i=100#数字转化为字符串

    str(i)

    i=23.97312#四舍五入

    round(i,2)或者round(i)

   第③个参数钦赐了封存的小数位数,若没有点名则代表四舍五入到整数

#!/usr/bin/python

dict = {}

dict[‘one’] = “This is one”

dict[2]    = “This is two”

tinydict = {‘name’: ‘john’,’code’:6734, ‘dept’: ‘sales’}

print dict[‘one’]      # Prints value for ‘one’ key

print dict[2]          # Prints value for 2 key

print tinydict          # Prints complete dictionary

print tinydict.keys()  # Prints all the keys

print tinydict.values() # Prints all the values

那将发生以下结果:

This is one

This is two

{‘dept’: ‘sales’, ‘code’: 6734, ‘name’: ‘john’}

[‘dept’, ‘code’, ‘name’]

[‘sales’, 6734, ‘john’]

数据类型转换:

偶尔,或许供给进行的松手类型之间的转换。类型之间的转移,只需选取类名作为函数。

有多少个放置的功用,从一种数据类型举办转换为另一种。这个函数再次来到3个象征转换值的新对象。

函数 描述

亚洲必赢官网,int(x [,base])

将x转换为二个平头。基数钦定为base,如若x是叁个字符串。

long(x [,base] )

将x转换为四个长整数。基数内定为base,假诺x是多个字符串。

float(x)

将x转换成二个浮点数。

complex(real [,imag])

创设一个复数。

str(x)

改换对象x为字符串表示方式。

repr(x)

对象x转换为2个表明式字符串。

eval(str)

总括二个字符串,并赶回2个指标。

tuple(s)

把s转换为三个元组。

list(s)

把s转换为1个列表。

set(s)

把s转换为2个汇集。

dict(d)

创设3个字典。 d必须的(键,值)元组系列。

frozenset(s)

把s转换为冻结集。

chr(x)

平头转换为3个字符。

unichr(x)

平头转换为三个Unicode字符。

ord(x)

改换单个字符为整数值。

hex(x)

将整数转换为十六进制字符串。

oct(x)

将整数转换为以八进制的字符串。

网站地图xml地图