python入门.docx
- 文档编号:25460030
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:30
- 大小:24.21KB
python入门.docx
《python入门.docx》由会员分享,可在线阅读,更多相关《python入门.docx(30页珍藏版)》请在冰豆网上搜索。
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" 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上查看代码片派生到我的代码片
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- python 入门