Python学习笔记

源代码是这么:

黄金年代、底蕴小知识

1、Python是意气风发种脚本语言,源文件常常以.py作为增添名,其运维情势与java相符,都是编写翻译成字节码后再解释实行的

2、Python2.x与Python3.x是不匹配的,可是2.x出于丰富成熟,第三方库丰硕,由此,应该依据供给选择,两个并不冲突

3、Python的IDE不像Ms的VS意况那样,独占鳌头的好用的工具,常常是IDLE只怕PythonWin甚至此外一些开源的工具,恐怕就平素选拔交互作用式命令行

4、注意,由于Python是解释性脚本语言,因而,不仅可以写成四个剧本文件全体施行,也能够在交互作用式命令意况中某些实施

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

6、Python能够在相符行写入多条语句,使用分号隔开分离就能够

7、若大器晚成行语句过长,需求折行继续,则能够动用反斜杠分隔,这个与C++一样

8、Python脚本代码可以平昔在Shell中运营

9、假如要从一个本子文件运转,举例在D盘下成立一个main.py文件,此中输入代码print(“nihao”,”wohao”),然后踏入到命令提醒符,进入到D盘目录下,输入指令python main.py,就可以运转脚本。非常多Python脚本文件都会在首先行钦点解释器的职位,不过,注意,真正正确的写法是:#!/usr/bin/envpython

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

二、开辟工具

1、PYPI,也即python package
index,是python官方的第三方库的库房,官方推荐应用pip进行包的下载管理,pip约等于是linux中的yum,apt-get那样的工具,pip要求较高版本的python蒙受扶助,所以,尽量选取较高的版本

2、Python的IDE工具相当的多,除了自带的IDLE外,还恐怕有不菲,以至有的购买出卖的工具,有豆蔻梢头对跨平台的工具使用JAVA开辟的,所以会必要有JVM,就本人个人来讲,写一些代码应用IDLE超多,很便利,要是是正经开荒,则选用pycharm,那是贰个收款的工具,不过很好用

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

三、注释及特别运算符

1、#用来表示注释一行,从#开端到那生机勃勃行终止都表示被讲明

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

3、使用三重引号能够拓宽多行注释,只要不将这么些字符串赋值给叁个变量,都会被当成叁个表明,能够是四个单引号,也能够是多个双引号那样的三重引号格局,三重引号的字符串是足以赋值给变量的,会保留字符串中有所的格式

4、在Python中,能够应用分号;将多个语句放在豆蔻年华行上,然而不提议那样做

5、for循环,while循环,if语句的规格都休想放在小括号中,函数定义时,参数供给放在小括号中

所以出现这一个标题,是在字符串转变进程中现身了三个小错误,在大器晚成多种百度和谷歌(Google卡塔 尔(阿拉伯语:قطر‎后,开掘概念照旧很迷糊,不过在曙光大佬的解答后,精通了怎么管理,便是在s后加””,运转后发觉完美消除

四、变量类型

  4.1基本法则

        I、Python是动态类型语言,没有必要在行使变量在此之前先定义变量类型
 ,当给
Python 中的变量赋差异类别的值时,变量彰显不相同的门类,例如aa=”nihao”,那个时候aa是字符串类型;aa=45,则这时候aa是数字类型

       
II、Python是二个强类型的语言,注意不要跟上边的动态类型搞混了,肖似2+”2”那样的精兵简政是会报错的,Python并不会开展自动的转移。事实上,强类型是指变量必需有显式的档期的顺序,不论那些项目是活动评释依然人造证明的,弱类型语言无需证明类型

        III、变量只可以以字母或下划线起先,变量名未有长度节制

       
IV、在Python中,一切都以对象,饱含基本数据类型比方intfloatstring,举个例子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.30000000000000004,是的,你从未眼花,就是那些值,为何吗,因为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

将小数位设置为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卡塔 尔(英语:State of Qatar)的地点已是三个新鸿基土地资金财产点了,等于是

#新建了叁个字符串

那事实上也是生龙活虎种防范内部存款和储蓄器覆盖的主意

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

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

“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的位置插入三个成分”nihao”

s1.pop(index)

删除掉列表s第11中学索引地方为index的因素,并且再次回到

若index参数为空,则暗许管理列表最终多个因素

s1.remove(x)

从列表s1中去除第三遍面世的成分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部分也能够是二个列表或然是此外二个字典

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)#获得元组中型Mini小的和最大的因素

如果成分是字符串,则相比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)

   第1个参数内定了保留的小数位数,若未有一点点名则象征四舍五入到整数