数据类型,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

于是出现那一个题材,是在字符串转换进度中出现了二个小错误,在一多元百度和谷歌后,发现概念如故很迷糊,然则在曙光大佬的解答后,领会了怎么处理,正是在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是解释性脚本语言,由此,既能够写成3个本子文件全部实施,也能够在交互式命令环境中部分执行

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

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

柒 、若一行语句过长,必要折行继续,则足以行使反斜杠\分隔,这个与C++一样

捌 、Python脚本代码可以直接在Shell中运作

⑨ 、假如要从1个剧本文件运转,例如在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工具十二分的多,除了自带的IDLE外,还有为数不少,甚至有个别购买销售的工具,有一部分跨平台的工具使用JAVA开发的,所以会要求有JVM,就自身个人来说,写一些代码应用IDLE比较多,很方便,假如是规范开发,则利用pycharm,那是二个收费的工具,可是很好用

Python字典:

运行前面世了难题:ord() expected string of length 1, but int found

叁 、注释及特种运算符

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

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

三 、使用三重引号能够拓展多行注释,只要不将这几个字符串赋值给2个变量,都会被当成三个表明,能够是五个单引号,也得以是多少个双引号那样的三重引号格局,三重引号的字符串是能够赋值给变量的,会保留字符串中保有的格式

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

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

Python字典是一种哈希表型。他们像提到数组或哈希在Perl中一律,由键 –
值对组合。字典键差不多能够是另外Python类型,但一般是数字或字符串。值能够是任意Python的靶子。

故而出现这一个标题,是在字符串转换进程中出现了3个小错误,在一多元百度和谷歌(Google)后,发现概念依然很迷糊,不过在曙光大佬的解答后,通晓了怎么处理,就是在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是2个对象,因而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类型正是提供标准数字的1个项目,然而Decimal并不会安放类型,使用前要求引入decimal模块,看3个例证:

import decimal#引入decimal包

数据类型,Python学习笔记。>>>

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

将小数位设置为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)的地址早便是三个新鸿基土地资金财产点了,等于是

#新建了一个字符串

那实际也是一种预防内部存款和储蓄器覆盖的主意

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操作

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

“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”)

在那边能够观看,其实字符串正是1个列表

4.3.7 Lists访问

  I、访问情势与数组的中括号形式一样

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

str[0]则做客了第3个元素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”)

www.30064.com ,在s第11中学检索第②次出现”nihao”的目录地点

s1.insert(1,“nihao”)

在列表索引1的岗位插入三个因素”nihao”

s1.pop(index)

删除掉列表s第11中学索引地方为index的因素,并且重返

若index参数为空,则暗中认可处理列表末了1个因素

s1.remove(x)

从列表s1中剔除第二遍面世的成分x

s1.reverse()

反转列表s1

s1.sort()

循途守辙ASC规则排种类表三月素

4.3.10 Lists推导式

I、推导式也是构造列表的一种办法,一般情势为:

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

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

能够认为,那是一种通过for语句创制列表的章程,通过3个表达式构造出一个列表,或然说是推导出叁个列表

上边的表明式是透过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部分也得以是1个列表可能是其它1个字典

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’]

数据类型转换:

偶然,恐怕须要实践的放手类型之间的转移。类型之间的转移,只需使用类名作为函数。

有多少个放置的机能,从一种数据类型举行更换为另一种。这几个函数重临二个表示转换值的新指标。

函数 描述

int(x [,base])

将x转换为多个整数。基数钦赐为base,如若x是3个字符串。

long(x [,base] )

将x转换为1个长整数。基数钦点为base,假若x是多个字符串。

float(x)

将x转换来一个浮点数。

complex(real [,imag])

成立3个复数。

str(x)

转换对象x为字符串表示情势。

repr(x)

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

eval(str)

测算2个字符串,并赶回一个目的。

tuple(s)

把s转换为一个元组。

list(s)

把s转换为2个列表。

set(s)

把s转换为3个汇聚。

dict(d)

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

frozenset(s)

把s转换为冻结集。

chr(x)

平头转换为三个字符。

unichr(x)

平头转换为1个Unicode字符。

ord(x)

转移单个字符为整数值。

hex(x)

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

oct(x)

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

发表评论

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

网站地图xml地图