源代码是如此:

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

故此出现这些难点,是在字符串转换进程中冒出了3个小错误,在一多级百度和谷歌(谷歌(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中运营

⑨ 、倘诺要从1个本子文件运行,例如在D盘下开创1个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别介绍除法和乘方操作符

三 、使用三重引号能够举办多行注释,只要不将这几个字符串赋值给3个变量,都会被当成一个诠释,能够是四个单引号,也得以是七个双引号那样的三重引号方式,三重引号的字符串是能够赋值给变量的,会保留字符串中具有的格式

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

伍 、for循环,while循环,if语句的口径都不要放在小括号中,函数定义时,参数须要放在小括号中

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

所以出现这几个题材,是在字符串转换进程中冒出了三个小错误,在一多级百度和谷歌后,发现概念依旧很迷糊,不过在曙光大佬的解答后,掌握了怎么处理,正是在s后加””,运转后意识完美化解

肆 、变量类型

  4.1着力规则

        I、Python是动态类型语言,不需求在利用变量在此以前先定义变量类型
 ,当给
Python 中的变量赋不一致门类的值时,变量展现不一致的品种,例如aa=”nihao”,此时aa是字符串类型;aa=45,则此时aa是数字类型

       
II、Python是3个强类型的言语,注意不要跟上边包车型地铁动态类型搞混了,类似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、那个系列名之为十进制数据类型,在进一步介绍那么些项目此前,先看2个例证,dd=0.1+0.2,猜猜结果是有个别,你一定认为是0.3吧,呵呵,请看:0.20000000000000004,是的,你从未眼花,正是那么些值,为啥吗,因为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字符串操作

金沙注册送58 ,I、加号+用于字符串连接;

Str1=”hello”+”nihao”或者

Str1+=”end string”

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

学学第②章,Python学习笔记。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开首,去除掉最终1位字符

负几就是从后边开首去除掉二个人字符

例如: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操作

用来判断在字符串中是或不是留存其余3个串

“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() #成立1个空驶列车表,当然也足以List1=[]这么创立空驶列车表

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

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

地点三种方法实际是一律的,都以赋值法,只可是是位于了list()语句中了

也足以直接接纳字符串来成立list4=list(“python”)

在这边可以看来,其实字符串正是2个列表

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串联四个列表,跟串联多个字符串1个意味

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

s[i]收获列表中某些值,也能够通过那一个法子修改有些列表成分

s[i:j]跟取得子串一个情趣

len(s)取得列表长度

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

s1.count(e1)取得s1列表4月素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参数为空,则私下认可处理列表最后叁个成分

s1.remove(x)

从列表s1中去除第3回出现的成分x

s1.reverse()

反转列表s1

s1.sort()

依据ASC规则排类别表凉月素

4.3.10 Lists推导式

I、推导式也是结构列表的一种办法,一般格局为:

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

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

能够认为,那是一种通过for语句创立列表的方法,通过2个表明式构造出多个列表,恐怕说是推导出三个列表

地点的表明式是通过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()#随机删除一个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、比如对于3个元组

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]获取元组第2个要素

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转换为3个平头。基数内定为base,借使x是一个字符串。

long(x [,base] )

将x转换为3个长整数。基数钦点为base,假设x是二个字符串。

float(x)

将x转换成三个浮点数。

complex(real [,imag])

成立二个复数。

str(x)

改换对象x为字符串表示格局。

repr(x)

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

eval(str)

计量3个字符串,并赶回1个对象。

tuple(s)

把s转换为三个元组。

list(s)

把s转换为二个列表。

set(s)

把s转换为二个集合。

dict(d)

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

frozenset(s)

把s转换为冻结集。

chr(x)

平头转换为1个字符。

unichr(x)

平头转换为二个Unicode字符。

ord(x)

转移单个字符为整数值。

hex(x)

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

oct(x)

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

相关文章

网站地图xml地图