python入门.docx

上传人:b****6 文档编号:12877252 上传时间:2023-06-08 格式:DOCX 页数:30 大小:24.21KB
下载 相关 举报
python入门.docx_第1页
第1页 / 共30页
python入门.docx_第2页
第2页 / 共30页
python入门.docx_第3页
第3页 / 共30页
python入门.docx_第4页
第4页 / 共30页
python入门.docx_第5页
第5页 / 共30页
python入门.docx_第6页
第6页 / 共30页
python入门.docx_第7页
第7页 / 共30页
python入门.docx_第8页
第8页 / 共30页
python入门.docx_第9页
第9页 / 共30页
python入门.docx_第10页
第10页 / 共30页
python入门.docx_第11页
第11页 / 共30页
python入门.docx_第12页
第12页 / 共30页
python入门.docx_第13页
第13页 / 共30页
python入门.docx_第14页
第14页 / 共30页
python入门.docx_第15页
第15页 / 共30页
python入门.docx_第16页
第16页 / 共30页
python入门.docx_第17页
第17页 / 共30页
python入门.docx_第18页
第18页 / 共30页
python入门.docx_第19页
第19页 / 共30页
python入门.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

python入门.docx

《python入门.docx》由会员分享,可在线阅读,更多相关《python入门.docx(30页珍藏版)》请在冰点文库上搜索。

python入门.docx

python入门

python入门

1.词法分析

1.1注释(#)

注释使用#开头

1.2编码声明

如果第一行或者第二行的注释匹配coding[=:

]\s*([-\w.]+),则认为是编码声明,默认编码为UTF-8

推荐编码声明方式:

[python]viewplaincopy在CODE上查看代码片派生到我的代码片

#-*-coding:

-*-

1.3显示的行连接

当需要换行时,可以使用反斜线(\)连接上下两行,且反斜线后面不能添加注释

i.e

[python]viewplaincopy在CODE上查看代码片派生到我的代码片

#-*-coding:

UTF-8-*-

importsys

sys.stdout.write("hello陈\

fromPython%s\n"%(sys.version,))

1.4隐式的行连接

特殊情况下,如圆括号(()),方括号([]),或者大括号({})中的表达式可以分割成多个物理行而不需要反斜线。

此种换行方式下可以添加注解

i.e

[python]viewplaincopy在CODE上查看代码片派生到我的代码片

#-*-coding:

UTF-8-*-

importsys

sys.stdout.write("hello陈\

fromPython%s\n"%(sys.version

))

1.5关键字

以下的标识符被用作保留字,或者关键字(注意大小写):

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

Falseclassfinallyisreturn

Nonecontinueforlambdatry

Truedeffromnonlocalwhile

anddelglobalnotwith

aselififoryield

assertelseimportpass

breakexceptinraise

2.使用python解析器

打开cmd,输入py|python|python,即可打开交互模式。

i.e

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

$python

Python3.4.2(v3.4.2:

ab2c023a9432,Oct62014,22:

15:

05)[MSCv.160032bit(Intel)]onwin32

Type"help","copyright","credits"or"license"formoreinformation.

>>>flag=True

>>>ifflag:

...print("flagistrue!

")#注意缩进

...

flagistrue!

>>>

交互式输入复合语句时,最后必须跟随一个空行来表示结束(因为解析器无法猜测你什么时候已经输入最后一行)

3.简单介绍

3.1作为计算器使用

3.1数字

i.e

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>2+2

4

>>>5/2

2.5

>>>2**3

8

>>>4+_#交互模式下,最后一个打印的表达式分配给变量_,即8分配给_

12

>>>

3.2字符串

如果字符串中只有单引号而没有双引号,就用双引号引用,否则用单引号引用。

print()函数生成可读性更好的输出。

i.e

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>'"isn\'t",shesaid'

'"isn\'t",shesaid'

>>>print('"isn\'t",shesaid')

"isn't",shesaid

>>>print(r'"isn\'t",shesaid')#r保持原始字符串输出

"isn\'t",shesaid

>>>

字符串拼接

i.e

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>'py''thon'

'python'

>>>prefix='py'

>>>prefix+'thon'

'python'

>>>

字符串截取

i.e

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>word='helloeveryone'

>>>word[0]

'h'

>>>word[13]

'e'

>>>word[-1]#倒序从-1开始

'e'

>>>word[-2]

'n'

>>>word[0:

4]#包含头,不包含尾

'hell'

>>>word[0:

5]

'hello'

>>>word[:

5]#空代表从头开始

'hello'

>>>word[0:

]#空代表一直到结尾

'helloeveryone'

>>>word[:

]#显示所有字符

'helloeveryone'

>>>

字符串(Python)切割示意图:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

+---+---+---+---+---+---+

|P|y|t|h|o|n|

+---+---+---+---+---+---+

0123456

-6-5-4-3-2-1

Python中的字符串是不能改变的,如果你尝试改变会报错。

3.3列表

中括号中的一列用逗号分隔的值。

列表可以包含不同类型的元素,但是通常一个列表中的所有元素都拥有相同的类型。

i.e

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>words=[2,5,6,99]

>>>words

[2,5,6,99]

>>>words[-1]

99

>>>words+[111,222]

[2,5,6,99,111,222]

>>>words.append(333)#添加新元素

>>>words

[2,5,6,99,333]

>>>words[2:

3]=[555,666]#给切片赋值

>>>words

[2,5,555,666,99,333]

>>>len(words)#列表长度

6

>>>

列表可嵌套,创建包含其他列表的列表

i.e

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>a=[2,5,7]

>>>b=[3,6,8]

>>>c=[a,b]

>>>c

[[2,5,7],[3,6,8]]

>>>c[0]

[2,5,7]

>>>c[0][2]

7

>>>

输出斐波那契前几位

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>#输出斐波那契前几位

...a,b=0,1

>>>whileb<10:

...print(b)

...a,b=b,a+b

...

1

1

2

3

5

8

>>>

调整输出格式:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>#输出斐波那契前几位

...a,b=0,1

>>>whileb<10:

...print(b,end=',')

...a,b=b,a+b

...

1,1,2,3,5,8,>>>

4.流程控制语句:

ifwhilefor等属于复合语句

4.1if语句用于条件执行:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

if_stmt:

:

="if"expression":

"suite

("elif"expression":

"suite)*

["else"":

"suite]

i.e:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>x=int(input("enteraninteger:

"))

enteraninteger:

23

>>>ifx<0:

...print('<0')

...elifx==0:

...print('=0')

...else:

...print('>0')

...

>0

>>>

4.2while语句用于重复执行只要表达式为true

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

while_stmt:

:

="while"expression":

"suite

["else"":

"suite]

4.3for语句用于循环集合

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

for_stmt:

:

="for"target_list"in"expression_list":

"suite

["else"":

"suite]

i.e:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>animals=['cat','bird','elephant']

>>>foranimalinanimals:

...print(animal,len(animal))

...

cat3

bird4

elephant8

>>>

or

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>foriinrange(len(animals)):

...print(animals[i],len(animals[i]))

...

cat3

bird4

elephant8

>>>

4.4range()函数用于遍历数字序列

生成数字序列:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>foriinrange(5):

...print(i)

...

0

1

2

3

4

>>>

从2开始,到10之前结束,步长为2

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>foriinrange(2,10,2):

...print(i,end=',')

...

2,4,6,8,>>>

4.5breakcontinue

break:

跳出当前循环

i.e:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>forninrange(2,10):

...forminrange(2,n):

...ifn%m==0:

...print(n,'equals',m,'*',n//m)

...break

...else:

...print(n,'isaprimenumber')

...

2isaprimenumber

3isaprimenumber

4equals2*2

5isaprimenumber

6equals2*3

7isaprimenumber

8equals2*4

9equals3*3

>>>

continue:

继续执行下一次循环

4.6pass什么也不做

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>whileTrue:

...pass#一直等待直到手动停止(ctrl+c)

...

创建最小的类

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>classMyEmptyClass:

...pass

...

4.7定义函数(def)

使用def定义一个函数,其后必须跟有函数名和以括号标明的形式参数列表。

组成函数体的语句从下一行开始,且必须缩进

定义一个斐波那契函数:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>deffib(n):

...a,b=0,1

...whilea

...print(a,end=',')

...a,b=b,a+b

...print()

...

>>>fib(3000)

0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,

>>>

函数名重命名

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>fib

>>>f=fib

>>>f(3000)

0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,

>>>

不打印而保存在列表中返回

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>deffibR(n):

...result=[]#用以保存数据

...a,b=0,1

...whilea

...result.append(a)

...a,b=b,a+b

...returnresult

...

>>>f100=fibR(100)

>>>f100

[0,1,1,2,3,5,8,13,21,34,55,89]

>>>

4.7.1默认参数值定义函数

在定义函数时,就已经对参数进行了赋值

i.e:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>o=5

>>>defaa(aa=o):

...print(aa)

...

>>>aa()

5

>>>o=6

>>>aa()

5

>>>

但是这在默认值是列表、字典或大部分类的实例等易变的对象的时候又有所不同。

例如,下面的函数在后续调用过程中会累积传给它的参数:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>deflist(a,l=[]):

...l.append(a)

...returnl

...

>>>print(list

(1))

[1]

>>>print(list

(2))

[1,2]

>>>print(list(3))

[1,2,3]

>>>

如果不需要共享,可以如下写法:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>deff(a,l=None):

...iflisNone:

...l=[]

...l.append(a)

...returnl

...

>>>print(f

(1))

[1]

>>>print(f

(2))

[2]

>>>

4.7.2关键字参数

参数:

当调用函数时,一个值被传递给函数(或者方法),这个值就叫做参数。

有两种类型的参数

★关键字参数(keywordargument):

在函数调用中,通过标识符指定参数;或者在**后通过字典传递参数

调用complex()函数:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

complex(real=3,imag=5)

complex(**{'real':

3,'imag':

5})

★位置参数(potionalargument):

以参数列表的形式出现或者通过*,

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

complex(3,5)

complex(*(3,5))

在函数调用中,关键字参数必须跟随在位置参数的后面

5.数据结构

5.1更多关于Lists

5.1.1作为栈使用

5.1.2作为队列使用

5.2del语句

移除列表中某个元素,清空列表等。

5.3Tuples(元组)和序列

元组由逗号分割的若干值组成。

元组是不可变的,元组是可嵌套的

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>t=12,43,'hello'

>>>t

(12,43,'hello')

>>>u=t,(2,5,'everyone')

>>>u

((12,43,'hello'),(2,5,'everyone'))

>>>t[0]

12

>>>t[0]=666

Traceback(mostrecentcalllast):

File"",line1,in

TypeError:

'tuple'objectdoesnotsupportitemassignment

>>>

构造包含0个和1个元素的元组

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>empty=()#构造包含0个元素的元组

>>>len(empty)

0

>>>singleton='hello',#构造包含1个元素的元组

>>>len(singleton)

1

>>>

5.4Sets(集合){}

特点:

不会重复,没有顺序,

可操作:

交集,并集,差

[java]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>basket={'egg','apple','egg','orange'}

>>>basket

{'egg','orange','apple'}

>>>'egg'inbasket

True

>>>'pear'inbasket

False

>>>a=set('aabccd')

>>>b=set('bbcdde')

>>>a

{'a','b','c','d'}

>>>b

{'b','d','c','e'}

>>>a-b#在a中不在b中

{'a'}

>>>a|b#在a中或在b中

{'b','a','e','d','c'}

>>>a&b#既在a中又在b中

{'b','d','c'}

>>>a^b#在a中或者b中,去除同时包含的

{'a','e'}

>>>

5.5字典

无序的键值对集合,键必须是唯一的

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>tel={'jack':

4098,'sape':

4139}

>>>tel['guido']=4127

>>>tel

{'sape':

4139,'guido':

4127,'jack':

4098}

>>>tel['jack']

4098

>>>deltel['sape']

>>>tel['irv']=4127

>>>tel

{'guido':

4127,'irv':

4127,'jack':

4098}

>>>list(tel.keys())

['irv','guido','jack']

>>>sorted(tel.keys())

['guido','irv','jack']

>>>'guido'intel

True

>>>'jack'notintel

False

dict()构造器根据键值对的序列创建字典

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>dict([('liming',2343),('zhangsan',5632)])

{'zhangsan':

5632,'liming':

2343}

>>>

还可以:

[plain]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>dict(sape=4139,guido=4127,jack=4098)

{'jack':

4098,'guido':

4127,'sape':

4139}

>>>{x:

x**2forxin(2,4,6)}

{2:

4,4:

16,6:

36}

>>>

5.6循环

循环字典的键和值,可以使用items()方法

i.e

[python]viewplaincopy在CODE上查看代码片派生到我的代码片

>>>tels={'bob':

4323,'jone':

8732,'lili':

1974}

>>>tels

{'jone':

8732,'bob':

4323,'lili':

1974}

>>>fork,vintels.items():

...print(k,v)

...

jone8732

bob4323

lili1974

>>>

循环序列的index和value,可以使用enumerate()方法

i.e

[python]viewplaincopy在CODE上查看代码片派生到我的代码片

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2