保留字不能用做标识符,python的保留字可以通过keyword
模块获取
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Python中单行注释以 #
开头,如果需要多行注释,可以用多个#号,也可以使用3个单/双引号包裹
# 头部注释
print ("Hello, Python!") # 末尾注释
'''
多行注释
多行注释
'''
"""
多行注释
多行注释
"""
Python中不使用花括号 {}
来表示代码块,而是使用缩进,同一个代码块的语句必须使用相同的缩进
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False") # 缩进不一致,会导致运行错误
Python使用 input()
函数接受用户输入,输入函数会一直阻塞等待输入,直到键入Enter键
input函数可以接受参数,参数在输入前打印到控制台作为提示信息
input("\n按下 enter 键后退出。")
Python使用 print()
函数输出到控制台,默认输出是换行的,如果希望关闭自动关行可以在末尾加上 end=""
x=1
# 换行输出
print(x)
print("hello")
# 不换行输出
print(x,end="")
使用 import
关键字导入模块,有两种导入方式
导入整个模块
# 导入整个模块
import module
导入函数
# 导入某个函数
from module import function
# 导入多个函数
from module import function1,function2,...
# 导入模块中的全部函数
from module import *
在导入时可以给模块起一个别名,方便后续使用
import pandas as pd
pd.DataFrame(data)
pass
表示一个占位语句,不做任何事情
# 定义一个空语句的函数
def sample(n_samples):
pass
在python命令后加上参数可以查看一些基本信息
$ python3 -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[ etc. ]
Python中的变量赋值不需要声明类型,直接用 变量名=值
创建变量
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
Python允许同时为多个变量赋值
# 为多个变量赋相同的值
a = b = c = 1
# 为多个变量赋不同的值
a, b, c = 1, 2, "john"
Python定义了5个标准的数据类型
数字类型用于存储数值,是不可改变的数据类型,也就是说改变数字类型会分配一个新的对象
# 在指定一个值时,Number对象就会被创建
var1 = 1
var2 = 10
Python支持4中数字类型:
L
)字符串是一串字符,可以使用 '
或 "
来创建字符串(两者完全没有区别),也支持三引号 '''
,允许一个字符串跨多行,用于复杂的字符串赋值
字符串支持以下运算符:
操作符 | 描述 |
---|---|
+ | 字符串连接 |
* | 重复输出字符串 |
[] | 通过索引获取字符串中字符 |
[ : ] | 截取字符串中的一部分 |
in | 成员运算符,如果字符串中包含给定的字符返回 True |
not in | 成员运算符,如果字符串中不包含给定的字符返回 True |
r/R | 作为原始字符串,所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 |
字符串索引
字串列表有2种取值顺序
0
开始,最大范围是字符串长度-1
-1
开始,最大范围是-字符串长度
Python不支持char类型,单字符也被作为字符串,可以通过
字符串[索引值]
快速获取
字符串截取
截取字符串通过 [头下标:尾下标]
实现(不包含尾下标);如果不指定尾下标,则默认截取从头下标开始的整个字符串。Python截取可以接收第三个参数,参数作用是截取的步长(间隔位置)来截取字符串
截取操作返回一个新的对象,不会改变原本的字符串对象(除非接收返回值,实际引用仍然发生了改变)
str = 'abcdef'
# 取第一个字符并输出
print(str[0])
# 等价于 str[-5:-2],结果为 'bcd'
str[1:4]
# 输出从第三个字符开始的字符串
print str[2:]
字符串连接与重复
Python重载了字符串的 +
和 *
运算,分别实现了连接 和 重复 运算
str = 'Hello World!'
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串
字符串格式化
Python可以使用 %
快速对带格式符的字符串进行格式化,类似Java的String.format()
或C++的sprintf()
"formatString" % (args,...)
python的常用格式控制符如下:
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %F 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化时支持一些辅助符
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能
字符串内建函数
字符串内建方法
列表(list)是一个集合类,但一个列表中可以保存不同类型的数据,相当于Java中的 List<Object>
列表用 [ ]
标识,跟字符串一样,同样可以通过索引值获得对应位置的元素,也支持*
、+
和切割运算(切割列表仍然不会影响原列表对象),还可以通过 object in [列表]
的方式判断列表中是否存在某元素
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
列表的长度是可以变化的,可以动态地添加、删除、修改元素
添加
list.append(obj)
:在列表末尾添加元素list.insert(index,obj)
:将元素插入到列表的指定位置list.extend(list)
:在列表末尾一次性追加另一个列表中的多个值修改
直接通过索引值修改元素,列表会直接受到影响
list = [ 1, 2, 3]
list[0] = 10
# [10,2,3]
print(list)
删除
通过 del
函数配合索引,可以删除指定位置的列表元素,之后的元素会整体前移
list = [ 1, 2, 3]
del list[1]
# [1,3]
print(list)
通过list.remove(obj)
函数可以移除列表中某个值的第一个匹配项
列表内置函数
cmp(list1, list2)
:比较两个列表的元素len(list)
:列表元素个数min(list)
:返回列表元素最小值max(list)
:返回列表元素最大值list(seq)
:将序列转换成列表列表内置方法
list.count(obj)
:统计某个元素在列表中出现的次数list.index(obj)
:从列表中找出某个值第一个匹配项的索引位置list.reverse()
:反向列表中元素(原列表对象会发生改变)list.pop(index=-1)
:移除列表中的一个元素并返回该元素的值(默认最后一个元素,相当于出栈)list.sort([func])
:对原列表进行排序(原列表对象会发生改变)元组(tuple)类似于列表,区别是元组不能二次赋值,相当于只读列表
元组用 ( )
标识,内部元素用逗号分隔,大致的使用方法也和列表类似
如果声明时元组中只包含一个元素,需要在元素后添加逗号
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第四个(不包含)的元素
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 # 输出元组两次
print tuple + tinytuple # 打印组合的元组
以下对元组的操作是无效的,因为元组不允许更新
# 赋值操作会出错
tuple[0] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
元组内置函数
cmp(tuple1, tuple2)
:比较两个元组的元素len(tuple)
:元组元素个数min(tuple)
:返回元组元素最小值max(tuple)
:返回元组元素最大值tuple(seq)
:将序列转换为元组字典(dictionary)是无序的对象集合,而列表是有序的对象集合。字典中的元素是通过键(key)使用的,而不是索引,且key不可变,也不允许重复(相当于Java中的Map)。通过 keys()
和 values()
方法可以得到字典的所有键或所有值的集合
字典用 { }
标识,由键值对组成,形式与Json类似
访问字典
tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
print tinydict[key] # 输出键为'key'的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
修改字典
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8 # 更新
tinydict['School'] = "RUNOOB" # 添加
删除字典
# 删除key对应的元素
del dict[key]
# 清空字典
dict.clear()
# 删除字典
del dict
字典内置函数
cmp(dict1,dict2)
:比较两个字典的元素len(dict)
:计算字典的元素个数str(dict)
:输出字典的字符串表示字典内置方法
dict.clear()
:删除字典内的所有元素,相当于清空dict.copy()
:返回一个字典的浅拷贝dict.fromkeys(seq[,val])
:创建一个新字典,以序列seq中的元素作为key,value为字典所有键对应的值dict.get(key,default=None)
:返回指定键的值,如果不存在则返回default值dict.has_key(key)
:判断key是否存在(python3不支持)dict.items()
:返回键值对元组的数组(相当于Java的entrySet方法)dict.keys()
:返回字典中的所有键dict.values()
:返回字典中的所有值dict.setdefault(key,default=None)
:和get类似,但如果key不存在,则会添加key并将value设置为defaultdict.update(dict2)
:将参数中字典的键值对更新到字典中dict.pop(key[,default])
:删除字典中key对应的键值对,返回值为被删除的值。如果key不存在则返回default值dict.popitem()
:返回并删除字典中的最后一对键值对(类似出栈)数据类型的转换基本只需将数据类型作为函数名使用,这些函数返回一个新的对象,表示转换的值
函数 | 描述 |
---|---|
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次幂 |
// | 取整除:返回商的整数部分(向下取整) |
运算符 | 描述 |
---|---|
== | 等于:比较对象是否相等 |
!= | 不等于:比较两个对象是否不相等 |
<> | 不等于:比较两个对象是否不相等(python3 已废弃) |
> | 大于:返回x是否大于y |
< | 小于:返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量 True 和 False 等价 |
>= | 大于等于:返回x是否大于等于y |
<= | 小于等于:返回x是否小于等于y |
运算符 | 描述 |
---|---|
= | 简单的赋值运算符 |
+= | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取模赋值运算符 |
**= | 幂赋值运算符 |
//= | 取整除赋值运算符 |
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 |
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 |
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True |
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print "1 - 变量 a 在给定的列表中 list 中"
else:
print "1 - 变量 a 不在给定的列表中 list 中"
if ( b not in list ):
print "2 - 变量 b 不在给定的列表中 list 中"
else:
print "2 - 变量 b 在给定的列表中 list 中"
运算符 | 描述 | 实例 |
---|---|---|
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。 |
id()
函数用于获取对象内存地址
is
用于判断两个变量引用对象是否为同一个,即是否是同一块内存空间(相当于Java的==
);==
用于判断引用变量的值是否相等(相当于Java的equals()
方法)
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~、+、- | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
*、/、%、// | 乘,除,取模和取整除 |
+、- | 加法减法 |
>>、<< | 右移,左移运算符 |
& | 位 'AND' |
^、| | 位运算符 |
<=、<、>、>= | 比较运算符 |
<>、==、!= | 等于运算符 |
=、%=、/=、//=、-=、+=、*=、**= | 赋值运算符 |
is、is not | 身份运算符 |
in、not in | 成员运算符 |
not、and、or | 逻辑运算符 |
在Python中,任何非0且非空的值为true,0或null为false
python不支持
switch
语句
if 判断条件1:
执行语句块
elif 判断条件2:
执行语句块
elif 判断条件3:
执行语句块
...
else:
执行语句块
Python提供了 for 循环和 while 循环
python不支持 do...while 循环
while循环
# else语句块会在循环正常执行完的情况下执行
# 如果通过 break 跳出循环,这个语句块将不会被执行
while 判断条件:
执行语句块
else:
执行语句块
for循环
# else语句块用法同上
for 变量名 in 序列:
执行语句块
else:
执行语句块
跳出循环
Python同样提供 break
和 continue
语句来跳出循环,用法也与其它语言类似,break用于终止整个循环,而continue只会跳出本次循环
自定义函数的规则如下:
def
关键字进行函数定义,后接函数名和圆括号 ()
:
开始,并且需要缩进return [返回值]
表示结束函数执行,如果没有返回值相当于返回Nonedef functionname( parameters ):
"函数注释说明"
function_body
return [expression]
del
语句可以删除对象的引用(类似C++的delete
)
del var1[,var2,var3,...]
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。