针对python3以上。
标识符:第一个字符必须是字母或下划线‘_’。其他部分可以是字母数字下划线。
大小写敏感。
注释:注释以#开头。
多行注释:用三个单引号(''')或者三个双引号(""")将注释括起来
eg: #注释
'''注释
注释'''
"""注释
注释"""
连接符‘ \ ’:连接多个物理行。
(python通常是一行一条语句,但如该语句很长,可使用反斜杠连接)
eg:
display="helloworld helloworld helloworld"
==>
display = "helloworld \
helloworld \
helloworld"
用户输入input:
eg:
input("请输入一个值,输入完毕按enter退出")
用户输出print:
eg:
print("您刚刚输入的值为:",x)
同一行中使用多条语句时,语句之间使用分号“ ; ”分隔。
Python中的变量不需要申明,也没有类型申明(变量类型看所赋的值,赋什么值就是什么类型)。每个变量在使用前必须赋值,赋值后变量才会被创建。
多个变量赋值:
eg:
a=b=c=6
a,b,c = 6,8,"hello"
数据类型:
数字、字符串、列表(List)、元组(Tuple)、集合(Sets)、字典(Dictionary)
数字:(不可变)
Python3 支持 int、float、bool、complex(复数)
内置的type()函数可以用来查询变量所指的对象类型。
eg:
a=100; b="hello"
print(type(a),type(b))
可以使用del语句删除一些对象引用:del a,b
运算符:
+加、-减、*乘、/除,得到的是一个浮点数、//除,得到的是一个整数、%取余、**乘方
(Python的复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型)
字符串:用单引号或双引号括起来 (元素不可变)
索引值以 0 为开始值,-1 为从末尾的开始位置。
eg:
str='hello'
str[0]是h,str[1]是e...
str[-1]是o,str[-2]是l...
字符串截取:变量[start : end]
加号 (+) 是字符串的连接符
星号 (*) 表示复制当前字符串,紧跟的数字为复制的次数
eg:
str='hello'
print (str) # 输出字符串
print (str[0:-1]) # 输出第一个个到倒数第二个的所有字符
print (str[0:]) # 输出从第一个开始到最后的所有字符
print (str[0]) # 输出字符串第一个字符
print (str * 2) # 输出字符串两次
print (str + "TEST") # 连接字符串
结果如下图所示:
反斜杠(\)转义特殊字符,如不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:
eg:
print('hello\nhello')
>>>hello
hello
print(r'hello\nhello')
>>>hello\nhello
Python的引号:
单引号'、双引号"、三引号'''或""" 标识字符串常量。
单引号双引号使用完全相同(一行)。
三引号可以指定多行字符串:
eg:
str=""" helloworld
helloworld
helloworld """
列表(List):(元素可以改变)有序
列表中元素的类型可以不相同,它支持数字、字符串,还可以包含列表(即嵌套)。
列表:写在方括号[ ]之间、用逗号分隔的元素列表:
eg:list=['abc',666,['a','b',6],'z']
列表可以被索引和截取,列表被截取后返回一个包含所需元素的新列表,格式如下:
列表截取:变量[start : end : step] (start、end表示截取元素的下标,step截取步长)
一些列表使用例子如下:
eg:
list=['abc',666,['a','b',6],'z']
print (list) # 输出列表
print (list[0:-1]) # 输出第一个到倒数第二个的列表元素
print (list[0:]) # 输出从第一个开始的所有列表元素
print (list[0]) # 输出第一个列表元素
print (list * 2) # 输出两次列表
print (list + ['a','b','s']) # 连接列表
结果如下图所示:
list元素可以改变:
eg:
list=['abc',666,['a','b',6],'z']
list[2]='s6g'
print(list)
>>>['abc', 666, 's6g', 'z']
注:字符串不可改变
元组(Tuple):(元素不可修改)
与列表类似,但元素不可改变。
元组中的元素类型也可以不相同。
元组:写在小括号( )里,元素之间用逗号隔开。
一些元组使用例子如下:
eg:
tuple=(666,'abcde',['a','b',6],'z',('s',6),'g')
print (tuple) # 输出元组
print (tuple[0:-1]) # 输出第一个到倒数第二个的元组元素
print (tuple[0:]) # 输出从第一个开始的所有元组元素
print (tuple[0]) # 输出第一个元组元素
print (tuple* 2) # 输出两次元组
print (tuple + ('a','b','s')) # 连接元组
结果如下图:
构造仅包含0个或1个元素的元组语法上比较特殊:
tuple1 = ( ) # 空元组
tuple2 = (6,) # 元组仅包含一个元素,需要在元素后添加逗号
总结:string、list和tuple都属于sequence(序列)。
string和tuple元素不可修改,list可以修改。
string、list和tuple都可以被索引和切片截取。都可使用+拼接
string使用' '或" "括起来,元素间逗号隔开。
list写在[ ]之间,元素间逗号隔开。
tuple写在( )之间,元素间逗号隔开。
集合(Set):无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
使用大括号{}或者 set()函数创建集合。
注:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
eg:
hobby={'painting','travel','singing','travel'}
#成员测试
if('painting' in hobby) :
print('1') #painting在集合中输出1
else :
print('2') ##painting不在集合中输出2
print(hobby) # 输出集合,重复的元素被自动移除
# set可以进行集合运算
s1 = set('abc135689abc')
s2= set('b2346789cde')
print(s1) # 输出s1集合,可见重复的元素被自动移除了
print(s2) # 输出s2集合
print(s1 - s2) # 输出s1和s2的差集 (可视作s1和s2相同元素相互抵消了)
print(s1 | s2) # 输出s1和s2的并集 (s1和s2元素合并,重复元素自动移除了)
print(s1 & s2) # 输出s1和s2的交集 (s1和s2中同时存在的元素)
print(s1 ^ s2) # 输出s1和s2中不同时存在的元素
结果如下图:
字典(Dictionary):无序的对象集合
字典:一种映射类型,字典用{ }标识,是一个无序的键(key) : 值(value)对集合。
字典当中的元素是通过键来存取。
键(key)必须使用不可变类型。
同一个字典中,键(key)必须是唯一的。
dict={ } #创建一个空字典
dict={ 'a':1,'b':2,'c':3,'d':'s' }
dict['z']=6
print(dict['z'],dict['d']) #输出键为'z'和'd'的值
print(dict.keys()) #输出字典的所有键
print(dict.values()) #输出字典的所有值
print(dict) #输出完整字典 可见输出结果是无序的
结果如下图:
还可以利用dict()函数创建字典
eg:
d1=dict([('a',1),('b',2),('c',3),('d',4)])
print(d1)
d2=dict(e=5,f=6,g=7,h=8)
print(d2)
结果如下:
{'d': 4, 'a': 1, 'c': 3, 'b': 2}
{'h': 8, 'g': 7, 'f': 6, 'e': 5}
python数据类型转换
函数 描述
int(x [,base ]) 将x转换为一个整数 (base表示x按什么进制转换,可有可无)
long(x [,base ]) 将x转换为一个长整数 (同上,默认十进制)
float(x) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数 (real+imag*j 如real为字符串,则不需要imag)
real:int, long, float或字符串;imag: int, long, float;
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 ) 将一个整数转换为一个八进制字符串
序列的一些操作:
操作 描述
s + r 序列连接
s * n , n * s s的 n 次拷贝,n为整数
s % d 字符串格式化(仅字符串)
s[ i ] 索引
s[ i :j ] 切片
a in b , a not in b 从属关系
for x in y : 迭代
len(s) 长度
min(s) 最小元素
max(s) 最大元素
del s[ i ] 删除列表中一个元素
del s[ i: j ] 删除列表中一个片段
部分数值操作:
x << y 左移
x >> y 右移
x & y 按位与
x | y 按位或
x ^ y 按位异或 (exclusive or)
~x 按位翻转
x // y 除(得到的结果为整数)
x ** y 乘方 (xy )
x % y 取模 (x mod y )
~x ~x=-(x+1)
abs(x ) 绝对值
divmod(x ,y ) 返回 (int(x / y ), x % y )
pow(x ,y [,modulo ]) 返回 x的y次方再对modulo取余 ==>(x**y)%modulo
round(x ,[n]) 四舍五入,n为小数点位数
成员运算符:
in if (x in y): x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in if (x not in y):x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
身份运算符:
is is是判断两个标识符是不是引用自一个对象
x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象
x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1