Python
2017-09-05 19:31:04 384 举报
AI智能生成
python基础,整理自http://www.runoob.com/python/python-tutorial.html
作者其他创作
大纲/内容
Python 简介
<div>Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。</div><div>Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。</div><div>Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。</div><div>Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。</div><div>Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。</div><div>Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。</div>
Python 中文编码
解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8
Python基础语法
保留字及说明
<div>and 用于表达式运算,逻辑与操作</div><div>as用于类型转换</div><div>assert断言,用于判断变量或条件表达式的值是否为真</div><div>break中断循环语句的执行</div><div>class用于定义类</div><div>continue继续执行下一次循环</div><div>def用于定义函数或方法</div><div>del删除变量或者序列的值</div><div>elif条件语句 与if else 结合使用</div><div>else条件语句 条件语句,与if,elif结合使用。也可以用于异常和循环使用</div><div>exceptexcept 包括捕获异常后的操作代码,与try,finally结合使用</div><div>exec用于执行python语句</div><div>for循环语句</div><div>finally用于异常语句,出现异常后,始终要执行finally包含的代码块。与try,except结合使用</div><div>from用于导入模块,与import结合使用</div><div>global定义全局变量</div><div>if条件语句,与else,elif结合使用</div><div>import用于导入模块,与from 结合使用</div><div>in判断变量是否存在序列中</div><div>is判断变量是否为某个类的实例</div><div>lambda定义匿名函数</div><div>not用于表达式运算,逻辑非操作</div><div>or用于表达式运算,逻辑或操作</div><div>pass空的类,函数,方法的占位符</div><div>print打印语句</div><div>raise异常抛出操作</div><div>return用于从函数返回计算结果</div><div>try包含可能会出现异常的语句,与except,finally结合使用</div><div>while循环语句</div><div>with简化Python的语句</div><div>yield用于从函数依次返回值</div>
标识符
<div>以下划线开始或者结束的标识符通常有特殊的意义。例如以一个下划线开始的标识符(如 _foo)不能用from module import *语句导入。</div><div>前后均有两个下划线的标识符,如__init__,被特殊方法保留。前边有两个下划线的标识符,如__bar,被用来实现类私有属性,</div><div>这个将在第七章--类与面向对象编程中讲到。通常情况下,应该避免使用相似的标识符。</div>
行和缩进
<div>Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。</div><div>python 最具特色的就是用缩进来写模块。</div><div>缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。</div>
多行语句
<div>Python语句中一般以新行作为为语句的结束符。</div><div>但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:</div><div>total = item_one + \</div><div> item_two + \</div><div> item_three</div><div>语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:</div><div>days = ['Monday', 'Tuesday', 'Wednesday',</div><div> 'Thursday', 'Friday']</div>
Python 引号
<div>Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。</div><div>其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。</div><div>word = 'word'</div><div>sentence = "这是一个句子。"</div><div>paragraph = """这是一个段落。</div><div>包含了多个语句"""</div>
Python注释
<div>python中单行注释采用 # 开头</div><div>python 中多行注释使用三个单引号(''')或三个双引号(""")</div>
Python空行
<div>函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。</div><div>空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。</div><div>记住:空行也是程序代码的一部分。</div>
等待用户输入
<div>下面的程序执行后就会等待用户输入,按回车键后就会退出:</div><div>#!/usr/bin/python</div><div>raw_input("\n\nPress the enter key to exit.")</div><div>以上代码中 ,"\n\n"在结果输出前会输出两个新的空行。一旦用户按下 enter(回车) 键退出,其它键显示。</div>
同一行显示多条语句
<div>Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:</div><div>#!/usr/bin/python</div><div>import sys; x = 'runoob'; sys.stdout.write(x + '\n')</div><div>执行以上代码,输入结果为:</div><div>$ python test.py</div><div>runoob</div>
Print 输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号:
多个语句构成代码组
<div>缩进相同的一组语句构成一个代码块,我们称之代码组。</div><div>像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。</div><div>我们将首行及后面的代码组称为一个子句(clause)。</div><div>如下实例:</div><div>if expression : </div><div> suite </div><div>elif expression : </div><div> suite </div><div>else : </div><div> suite </div>
命令行参数
很多程序可以执行一些操作来查看一些基本信息,Python 可以使用 -h 参数查看各参数帮助信息:
env的用法
<div>env:用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。</div><div>当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。</div><div>#!/usr/bin/python 相当于写死了python路径;</div><div>#!/usr/bin/env python 会去环境设置寻找 python 目录,推荐这种写法</div>
Python 变量类型
变量赋值
<div>Python 中的变量赋值不需要类型声明</div><div>如:</div><div>counter = 100 # 赋值整型变量</div><div>print counter</div>
多个变量赋值
<div>Python允许你同时为多个变量赋值。例如:</div><div>a = b = c = 1</div><div>也可以为多个对象指定多个变量。例如:</div><div>a, b, c = 1, 2, "john"</div><div>以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 "john" 分配给变量 c。</div>
标准数据类型
<div>Python有五个标准的数据类型:</div><div>Numbers(数字)</div><div>String(字符串)</div><div>List(列表)</div><div>Tuple(元组)</div><div>Dictionary(字典)</div>
Python数据类型转换
<div>int(x [,base])>>>将x转换为一个整数</div><div>long(x [,base] )>>>将x转换为一个长整数</div><div>float(x)>>>将x转换到一个浮点数</div><div>complex(real [,imag])>>>创建一个复数</div><div>str(x)>>>将对象 x 转换为字符串</div><div>repr(x)>>>将对象 x 转换为表达式字符串</div><div>eval(str)>>>用来计算在字符串中的有效Python表达式,并返回一个对象</div><div>tuple(s)>>>将序列 s 转换为一个元组</div><div>list(s)>>>将序列 s 转换为一个列表</div><div>set(s)>>>转换为可变集合</div><div>dict(d)>>>创建一个字典。d 必须是一个序列 (key,value)元组。</div><div>frozenset(s)>>>转换为不可变集合</div><div>chr(x)>>>将一个整数转换为一个字符</div><div>unichr(x)>>>将一个整数转换为Unicode字符</div><div>ord(x)>>>将一个字符转换为它的整数值</div><div>hex(x)>>>将一个整数转换为一个十六进制字符串</div><div>oct(x)>>>将一个整数转换为一个八进制字符串</div>
查看数据类型
<div>type()不会认为子类是一种父类类型。type(n)>>>查看数据类型</div><div>isinstance()会认为子类是一种父类类型。isinstance(a, int)>>>核对数据类型</div>
对应的数据操作(读取,截取等)看:http://www.runoob.com/python/python-variable-types.html
Python 运算符
Python算术运算符
<div>以下假设变量: a=10,b=20:</div><div>运算符<span> </span>描述<span> </span>实例</div><div>+<span> </span>加 <span> </span>两个对象相加<span> </span>a + b 输出结果 30</div><div>-<span> </span>减 <span> </span>得到负数或是一个数减去另一个数<span> </span>a - b 输出结果 -10</div><div>*<span> </span>乘 <span> </span>两个数相乘或是返回一个被重复若干次的字符串<span> </span>a * b 输出结果 200</div><div>/<span> </span>除 <span> </span>x除以y<span> </span>b / a 输出结果 2</div><div>%<span> </span>取模 <span> </span>返回除法的余数<span> </span>b % a 输出结果 0</div><div>**<span> </span>幂 <span> </span>返回x的y次幂<span> </span>a**b 为10的20次方, 输出结果 100000000000000000000</div><div>//<span> </span>取整除 <span> </span>返回商的整数部分<span> </span>9//2 输出结果 4 , 9.0//2.0 输出结果 4.0</div>
Python比较运算符
<div>以下假设变量a为10,变量b为20:</div><div>运算符<span> </span>描述<span> </span>实例</div><div>==<span> </span>等于 <span> </span>比较对象是否相等<span> </span>(a == b) 返回 False。</div><div>!=<span> </span>不等于 <span> </span>比较两个对象是否不相等<span> </span>(a != b) 返回 true.</div><div><><span> </span>不等于 <span> </span>比较两个对象是否不相等<span> </span>(a <> b) 返回 true。这个运算符类似 != 。</div><div>><span> </span>大于 <span> </span>返回x是否大于y<span> </span>(a > b) 返回 False。</div><div><<span> </span>小于 <span> </span>返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。<span> </span>(a < b) 返回 true。</div><div>>=<span> </span>大于等于<span> </span>返回x是否大于等于y。<span> </span>(a >= b) 返回 False。</div><div><=<span> </span>小于等于 <span> </span>返回x是否小于等于y。<span> </span>(a <= b) 返回 true。</div>
Python赋值运算符
<div>以下假设变量a为10,变量b为20:</div><div>运算符<span> </span>描述<span> </span>实例</div><div>=<span> </span>简单的赋值运算符<span> </span>c = a + b 将 a + b 的运算结果赋值为 c</div><div>+=<span> </span>加法赋值运算符<span> </span>c += a 等效于 c = c + a</div><div>-=<span> </span>减法赋值运算符<span> </span>c -= a 等效于 c = c - a</div><div>*=<span> </span>乘法赋值运算符<span> </span>c *= a 等效于 c = c * a</div><div>/=<span> </span>除法赋值运算符<span> </span>c /= a 等效于 c = c / a</div><div>%=<span> </span>取模赋值运算符<span> </span>c %= a 等效于 c = c % a</div><div>**=<span> </span>幂赋值运算符<span> </span>c **= a 等效于 c = c ** a</div><div>//=<span> </span>取整除赋值运算符<span> </span>c //= a 等效于 c = c // a</div>
Python位运算符
<div>按位运算符是把数字看作二进制来进行计算的。</div><div>下表中变量 a 为 60,b 为 13,二进制格式如下:</div><div>a = 0011 1100</div><div>b = 0000 1101</div><div>-----------------</div><div>a&b = 0000 1100</div><div>a|b = 0011 1101</div><div>a^b = 0011 0001</div><div>~a = 1100 0011</div><div>运算符<span> </span>描述<span> </span>实例</div><div>&<span> </span>按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0<span> </span>(a & b) 输出结果 12 ,二进制解释: 0000 1100</div><div>|<span> </span>按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。<span> </span>(a | b) 输出结果 61 ,二进制解释: 0011 1101</div><div>^<span> </span>按位异或运算符:当两对应的二进位相异时,结果为1<span> </span>(a ^ b) 输出结果 49 ,二进制解释: 0011 0001</div><div>~<span> </span>按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1<span> </span>(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。</div><div><<<span> </span>左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。<span> </span>a << 2 输出结果 240 ,二进制解释: 1111 0000</div><div>>><span> </span>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数</div>
Python逻辑运算符
<div>Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:</div><div>运算符<span> </span>逻辑表达式<span> </span>描述<span> </span>实例</div><div>and<span> </span>x and y<span> </span>布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。<span> </span>(a and b) 返回 20。</div><div>or<span> </span>x or y<span> </span>布尔"或"<span> </span>- 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。<span> </span>(a or b) 返回 10。</div><div>not<span> </span>not x<span> </span>布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。<span> </span>not(a and b) 返回 False</div>
Python成员运算符
<div>除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。</div><div>运算符<span> </span>描述<span> </span>实例</div><div>in<span> </span>如果在指定的序列中找到值返回 True,否则返回 False。<span> </span>x 在 y 序列中 , 如果 x 在 y 序列中返回 True。</div><div>not in<span> </span>如果在指定的序列中没有找到值返回 True,否则返回 False。<span> </span>x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。</div>
Python身份运算符
<div>身份运算符用于比较两个对象的存储单元</div><div>运算符<span> </span>描述<span> </span>实例</div><div>is<span> </span>is 是判断两个标识符是不是引用自一个对象<span> </span>x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False</div><div>is not<span> </span>is not 是判断两个标识符是不是引用自不同对象<span> </span>x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。</div><div>注: id() 函数用于获取对象内存地址。</div>
Python运算符优先级
<div>以下表格列出了从最高到最低优先级的所有运算符:</div><div>运算符<span> </span>描述</div><div>**<span> </span>指数 (最高优先级)</div><div>~ + -<span> </span>按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)</div><div>* / % //<span> </span>乘,除,取模和取整除</div><div>+ -<span> </span>加法减法</div><div>>> <<<span> </span>右移,左移运算符</div><div>&<span> </span>位 'AND'</div><div>^ |<span> </span>位运算符</div><div><= < > >=<span> </span>比较运算符</div><div><> == !=<span> </span>等于运算符</div><div>= %= /= //= -= += *= **=<span> </span>赋值运算符</div><div>is is not<span> </span>身份运算符</div><div>in not in<span> </span>成员运算符</div><div>not or and<span> </span>逻辑运算符</div>
Python 函数
函数及函数调用
<div>定义一个函数</div><div>你可以定义一个由自己想要功能的函数,以下是简单的规则:</div><div>函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。</div><div>任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。</div><div>函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。</div><div>函数内容以冒号起始,并且缩进。</div><div>return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。</div><div>函数调用</div><div>定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。</div><div>这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。</div>
参数
必备参数
必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
关键字参数
<div>关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。</div><div>使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。</div><div>以下实例在函数 printme() 调用时使用参数名:</div><div>#!/usr/bin/python</div><div># -*- coding: UTF-8 -*-</div><div> </div><div>#可写函数说明</div><div>def printinfo( name, age ):</div><div> "打印任何传入的字符串"</div><div> print "Name: ", name;</div><div> print "Age ", age;</div><div> return;</div><div> </div><div>#调用printinfo函数</div><div>printinfo( age=50, name="miki" );</div><div>以上实例输出结果:</div><div>Name: miki</div><div>Age 50</div>
默认参数
<div>调用函数时,缺省参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:</div><div>#!/usr/bin/python</div><div># -*- coding: UTF-8 -*-</div><div> </div><div>#可写函数说明</div><div>def printinfo( name, age = 35 ):</div><div> "打印任何传入的字符串"</div><div> print "Name: ", name;</div><div> print "Age ", age;</div><div> return;</div><div> </div><div>#调用printinfo函数</div><div>printinfo( age=50, name="miki" );</div><div>printinfo( name="miki" );</div><div>以上实例输出结果:</div><div>Name: miki</div><div>Age 50</div><div>Name: miki</div><div>Age 35</div>
不定长参数
<div>你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下:</div><div>def functionname([formal_args,] *var_args_tuple ):</div><div> "函数_文档字符串"</div><div> function_suite</div><div> return [expression]</div><div>加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。如下实例:</div><div>#!/usr/bin/python</div><div># -*- coding: UTF-8 -*-</div><div> </div><div># 可写函数说明</div><div>def printinfo( arg1, *vartuple ):</div><div> "打印任何传入的参数"</div><div> print "输出: "</div><div> print arg1</div><div> for var in vartuple:</div><div> print var</div><div> return;</div><div> </div><div># 调用printinfo 函数</div><div>printinfo( 10 );</div><div>printinfo( 70, 60, 50 );</div><div>以上实例输出结果:</div><div>输出:</div><div>10</div><div>输出:</div><div>70</div><div>60</div><div>50</div>
0 条评论
下一页