软件:PyCharm for Mac
自学教程地址:菜鸟基础教程
以下内容均整理自
菜鸟基础教程——Python基础语法
标识符 | 意义 |
---|---|
单下划线开头 _foo | 代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入 |
双下划线开头的 __foo | 代表类的私有成员 |
双下划线开头和结尾的 foo | 特殊方法专用的标识, 如 __init __() 代表类的构造函数 |
- | - | - |
---|---|---|
and | exec | not |
assert | finally | or |
break | for | pass |
class | from | |
continue | global | raise |
def | if | return |
del | import | try |
elif | in | while |
else | is | with |
except | lambda | yield |
空行也是程序代码的一部分
以下内容均整理自
菜鸟基础教程——Python变量类型
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串`
注:在 Python3.X 版本中 long 类型被移除,使用 int 替代
###一般记为
s="a1a2···an"(n>=0)
[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符
[头下标:尾下标:步长]
转义字符 | 描述 |
---|---|
(在行尾时) | 续行符 |
\ | 反斜杠符号 |
’ | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
操作符 | 描述 |
---|---|
+ | 字符串连接 |
* | 重复输出字符串 |
[] | 通过索引获取字符串中字符 |
[ : ] | 截取字符串中的一部分 |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 |
% | 格式字符串 |
列表可更新,元组不可更新
:前为键, :后为值
dict = {
}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {
'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values()# 输出所有值
数据类型的转换,只需要将数据类型作为函数名即可
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数 |
long(x [,base] ) | 将x转换为一个长整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组。 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
unichr(x) | 将一个整数转换为Unicode字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
运算符 | 描述 |
---|---|
+ | 加 - 两个对象相加 |
- | 减 - 得到负数或是一个数减去另一个数 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 |
/ | 除 - x除以y |
% | 取模 - 返回除法的余数 |
** | 幂 - 返回x的y次幂 |
// | 取整除 - 返回商的整数部分(向下取整) |
运算符 | 描述 |
---|---|
== | 等于 - 比较对象是否相等 |
!= | 不等于 - 比较两个对象是否不相等 |
<> | 不等于 - 比较两个对象是否不相等,这个运算符类似 != |
> | 大于 - 返回x是否大于y |
< | 小于 - 返回x是否小于y。 |
>= | 大于等于 - 返回x是否大于等于y。 |
<= | 小于等于 - 返回x是否小于等于y。 |
运算符 | 描述 |
---|---|
= | 简单的赋值运算符 |
+= | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取模赋值运算符 |
**= | 幂赋值运算符 |
//= | 取整除赋值运算符 |
mark
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
按位运算符是把数字看作二进制来进行计算的.
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| |
按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 |
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
用于比较两个对象的存储单元
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象 ;x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象; x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND’ |
^ | |
位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
以下内容整理自
菜鸟基础教程——Python条件语句
指定任何非0和非空(null)值为true,0 或者 null为false。
if 判断条件:
执行语句……
else:
执行语句……
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
重要命令
命令 | 用途 |
---|---|
continue | 跳过该循环 |
break | 退出循环(跳过整个循环) |
pass | 不做任何事情,一般用做占位语句(如在def函数中) |
以下内容整理自
菜鸟基础教程——Python While循环语句
while 判断条件:
执行语句……
while 判断条件:
执行语句……
else:
执行语句……
简单语句组:
while (flag): 执行语句(仅一条)
i = 1
while i < 10:
i += 1
if i%2 > 0: # 非双数时跳过输出
continue
print i # 输出双数2、4、6、8、10
i = 1
while 1: # 循环条件为1必定成立
print i # 输出1~10
i += 1
if i > 10: # 当i大于10时跳出循环
break
以下内容整理自
菜鸟基础教程——Python for 循环语句
for iterating_var in sequence:
statements(s)
for iterating_var in sequence:
statements(s)
else
statements(s)
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '当前水果 :', fruits[index]
print "Good bye!"
# del语句的语法是:
del var1[,var2[,var3[....,varN]]]]
#您可以通过使用del语句删除单个或多个对象的引用。例如:
del var
del var_a, var_b
dir(package)
以下内容整理自
菜鸟基础教程——Python 函数
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
通过另一个函数调用执行,也可以直接从Python提示符执行。
类型 | 解释 | 参数传递 |
---|---|---|
不可变类型 | 变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。 | 类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。 |
可变类型 | 变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。 | 类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响 |
参数类型 | 要求 |
---|---|
必备参数 | 须以正确的顺序传入函数。调用时的数量必须和声明时的一样 |
关键字参数 | 函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致 |
默认参数 | 调用函数时,默认参数的值如果没有传入,则被认为是默认值。 |
不定长参数 | 可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名 |
#不定长参数实例
#加了星号(*)的变量名会存放所有未命名的变量参数
def functionname([formal_args,] *var_args_tuple ):
"函数_文档字符串"
function_suite
return [expression]
使用 lambda 来创建匿名函数
lambda [arg1 [,arg2,.....argn]]:expression
return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None
变量 | 定义位置 | 作用域 |
---|---|---|
全局变量 | 定义在函数外 | 可以在整个程序范围内访问 |
局部变量 | 定义在函数内部 | 只能在其被声明的函数内部访问 |
以下内容均整理自
菜鸟基础教程——Python模块
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
import module1[, module2[,... moduleN]]
调用:
模块名.函数名
from modname import name1[, name2[, ... nameN]]
from modname import *
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
以下内容均整理自
菜鸟基础教程——Python文件I/O
file object = open(file_name [, access_mode][, buffering])
各个参数的细节如下:
属性 | 描述 |
---|---|
file.closed | 返回true如果文件已被关闭,否则返回false。 |
file.mode | 返回被打开文件的访问模式。 |
file.name | 返回文件的名称。 |
file.softspace | 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。 |
fileObject.close()
fileObject.write(string)
fileObject.read([count])
如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
os模块提供了帮你执行文件处理操作的方法。
#重命名
os.rename(current_file_name, new_file_name)
rename()方法需要两个参数,当前的文件名和新文件名。
os.remove(file_name)
你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。
os.mkdir("newdir")
可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。
2. chdir()方法
os.chdir("newdir")
可以用chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。
3. getcwd()方法:
os.getcwd()
getcwd()方法显示当前的工作目录。
4. rmdir()方法
os.rmdir('dirname')
rmdir()方法删除目录,目录名称以参数传递。
在删除这个目录之前,它的所有内容应该先被清除。
模块 | 用途 |
---|---|
cmath | 对浮点数的数学运算函数 |
math | 用于复数运算的函数 |
import math
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 |
exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) | 返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,…) | 返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,…) | 返回给定参数的最小值,参数可以为序列。 |
modf(x) | 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) | x**y 运算后的值。 |
round(x [,n]) | 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 |
sqrt(x) | 返回数字x的平方根 |
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1 |
random() | 随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
函数 | 描述 |
---|---|
acos(x) | 返回x的反余弦弧度值。 |
asin(x) | 返回x的反正弦弧度值。 |
atan(x) | 返回x的反正切弧度值。 |
atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) | 返回x的弧度的余弦值。 |
hypot(x, y) | 返回欧几里德范数 sqrt(xx + yy)。 |
sin(x) | 返回的x弧度的正弦值。 |
tan(x) | 返回x弧度的正切值。 |
degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) | 将角度转换为弧度 |
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,一般以π来表示) |
e | 数学常量 e,e即自然常数(自然常数)。 |
reload(module_name)