威尼斯人线上娱乐

读书第贰章,Python学习笔记

28 3月 , 2019  

源代码是那样:

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盘下创立一个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别介绍除法和乘方操作符

三 、使用三重引号能够展开多行注释,只要不将这一个字符串赋值给一个变量,都会被当成四个诠释,能够是多少个单引号,也可以是三个双引号那样的三重引号情势,三重引号的字符串是能够赋值给变量的,会保留字符串中保有的格式

④ 、在Python中,能够使用分号;将四个语句放在一行上,然而不提出如此做

伍 、for循环,while循环,if语句的规格都毫无放在小括号中,函数定义时,参数须要放在小括号中

Python字典是一种哈希表型。他们像提到数组或哈希在Perl中一致,由键 –
值对组合。字典键大约能够是其它Python类型,但常见是数字或字符串。值能够是任意Python的对象。

故而出现那几个难点,是在字符串转换进程中出现了二个小错误,在一多元百度和谷歌后,发现概念依然很迷糊,可是在曙光大佬的解答后,理解了怎么处理,就是在s后加””,运维后发现完美化解

肆 、变量类型

  4.1基本规则

读书第贰章,Python学习笔记。        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,重回二个浮点数类型

   // – 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)的地点已经是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早先,去除掉最后一位字符

负几正是在此从前边开首去除掉三位字符

例如: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() #创办3个空驶列车表,当然也能够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的地方插入一个因素”nihao”

s1.pop(index)

剔除掉列表s第11中学索引地方为index的要素,并且重回

若index参数为空,则暗中同意处理列表最后1个要素

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、比如对于2个元组

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的元组数据,重临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)

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

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

数据类型转换:

有时候,也许供给进行的放置类型之间的转移。类型之间的更换,只需使用类名作为函数。

有多少个放置的效率,从一种数据类型举办转换为另一种。这个函数重临二个表示转换值的新对象。

函数 描述

int(x [,base])

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

long(x [,base] )

将x转换为1个长整数。基数钦命为base,假使x是三个字符串。

float(x)

将x转换来1个浮点数。

complex(real [,imag])

创设一个复数。

str(x)

转移对象x为字符串表示格局。

repr(x)

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

eval(str)

算算2个字符串,并再次来到贰个对象。

tuple(s)

把s转换为3个元组。

list(s)

把s转换为3个列表。

set(s)

把s转换为三个集结。

dict(d)

始建多个字典。 d必须的(键,值)元组类别。

frozenset(s)

把s转换为冻结集。

chr(x)

平头转换为贰个字符。

unichr(x)

平头转换为二个Unicode字符。

ord(x)

转换单个字符为整数值。

hex(x)

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

oct(x)

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


相关文章

发表评论

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

网站地图xml地图