Python学习笔记,学习第2章

源代码是那般:

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

从而出现那个题材,是在字符串转换进度中冒出了贰个小错误,在一名目繁多百度和谷歌(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是因为足够成熟,第1方库丰裕,因而,应该遵照须要选拔,两者并不争执

③ 、Python的IDE不像Ms的VS环境那样,独一无二的好用的工具,一般是IDLE大概PythonWin以及任何一些开源的工具,或然就一贯选用交互式命令行

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

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

陆 、Python能够在相同行写入多条语句,使用分号隔断即可

柒 、若一行语句过长,要求折行继续,则能够应用反斜杠\分隔,这个与C++一样

⑧ 、Python脚本代码可以平昔在Shell中运转

九 、若是要从3个本子文件运维,例如在D盘下创建三个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工具10分的多,除了自带的IDLE外,还有好多,甚至一些生意的工具,有一部分跨平台的工具使用JAVA开发的,所以会供给有JVM,就自笔者个人来说,写一些代码应用IDLE相比较多,很有益于,要是是专业开发,则动用pycharm,那是一个收款的工具,可是很好用

Python字典:

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

叁 、注释及非常运算符

1、#用来代表注释一行,从#千帆竞发到这一行终止都代表被诠释

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

叁 、使用三重引号可以实行多行注释,只要不将这么些字符串赋值给1个变量,都会被当成2个诠释,能够是多少个单引号,也足以是八个双引号那样的三重引号格局,三重引号的字符串是能够赋值给变量的,会保留字符串中兼有的格式

肆 、在Python中,能够动用分号;将八个语句放在一行上,可是不提议这样做

⑤ 、for循环,while循环,if语句的规范都并非放在小括号中,函数定义时,参数需求放在小括号中

Python字典是一种哈希表型。他们像提到数组或哈希在Perl中一样,由键 –
值对构成。字典键差不多能够是任何Python类型,但普通是数字或字符串。值能够是任意Python的目的。

由此出现这么些标题,是在字符串转换进度中出现了1个小错误,在一种类百度和谷歌后,发现概念照旧很迷糊,可是在曙光大佬的解答后,驾驭了怎么处理,正是在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是3个对象,由此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、那些项目称之为十进制数据类型,在越来越介绍那么些体系在此以前,先看3个例子,dd=0.1+0.2,猜猜结果是不怎么,你势必认为是0.3吗,呵呵,请看:0.20000000000000004,是的,你未曾眼花,便是以此值,为何吧,因为0.1和0.2都以float类型,那些种类存款和储蓄的是近似值而不是可信赖的值,那么decimal类型便是提供可信赖数字的3个种类,可是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,重返1个浮点数类型

   // – Integer Division,再次回到商的平尾部分

    注意,//并非一早就支持的运算符

4.3.4 字符串类型

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

 
 II、单引号与双引号字符串的用途基本一致,借使字符串中存在单引号则字符串可以置身双引号中,反之也是

   III、单或双引号表示的字符串,再须求换金鼎文写时,供给换行符号\,例如:
       

           abc=”acd\

           jkk”

           此时,abc的值是”acdjkk”,注意,换行符与以前的串之间不供给空格

   
IV、对于三引号的字符串,首先是能够直接换行的,不用选取换行符;其余在字符串中得以放入单引号,双引号等标志;所谓的三引号,能够是那样的”””,也能够是这么的’’’

4.3.5字符串特点

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

Str1=”nihao”

Str1+=”mike”#到这一步,id(Str1)的地方已经是多少个新鸿基土地资产方了,等于是

#新建了1个字符串

那实际也是一种预防内部存款和储蓄器覆盖的不二法门

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”

Python学习笔记,学习第2章。start只怕end能够不填写,则默许start为0,end为最终,大概说现在直接取值到终极

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

负几就是从后边早先去除掉几个人字符

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

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

IV、取得ASCII码

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

参数中的字符串能够是单引号、双引号、三引号的都足以,可是要留意只好放三个字符,无法使用七个字符组成的字符串

V、通过ASCII码得到字符

chr(97)返回’a’

llen(str)取得字符串长度

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

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

lin以及not in操作

用来判定在字符串中是否存在别的2个串

“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串联五个列表,跟串联七个字符串3个意味

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的地方插入几个因素”nihao”

s1.pop(index)

剔除掉列表s1中索引地点为index的因素,并且重临

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

s1.remove(x)

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

s1.reverse()

反转列表s1

s1.sort()

根据ASC规则排连串表七月素

4.3.10 Lists推导式

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

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

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

能够认为,那是一种通过for语句创立列表的措施,通过多个表达式构造出八个列表,只怕说是推导出二个列表

地方的表达式是经过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部分也得以是三个列表也许是其它3个字典

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()#美高梅开户网址,随机删除二个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]获取元组第二个要素

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)

   第3个参数钦定了保留的小数位数,若没有点名则意味着四舍五入到整数

#!/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’]

数据类型转换:

偶尔,恐怕供给履行的松手类型之间的转换。类型之间的转换,只需采取类名作为函数。

有多少个放置的法力,从一种数据类型进行转换为另一种。那个函数重临2个代表转换值的新对象。

函数 描述

int(x [,base])

将x转换为一个平头。基数钦定为base,假设x是1个字符串。

long(x [,base] )

将x转换为3个长整数。基数钦定为base,如果x是二个字符串。

float(x)

将x转换来3个浮点数。

complex(real [,imag])

成立3个复数。

str(x)

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

repr(x)

对象x转换为一个表达式字符串。

eval(str)

计量一个字符串,并赶回多少个指标。

tuple(s)

把s转换为3个元组。

list(s)

把s转换为一个列表。

set(s)

把s转换为三个凑合。

dict(d)

创立1个字典。 d必须的(键,值)元组类别。

frozenset(s)

把s转换为冻结集。

chr(x)

平头转换为二个字符。

unichr(x)

平头转换为三个Unicode字符。

ord(x)

更换单个字符为整数值。

hex(x)

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

oct(x)

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图