简介
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
特点
- 继承
- 多态
- 封装
具有良好的阅读性,一个广泛的标准的库。
基础语法
内置函数
-
print-打印变量,对象到屏幕上
print ('hello world') #字符串单引号,双引号均可 out: hello world
-
input-输入函数,输入变量为字符串类型
getinput = input ('请输入:') #按下字母a并回车 print (getinput) print (type(getinput)) ________________________________________ a class <str>
-
type-类型函数,返回对象类型
type('hello world') out:class 'str' type(type('hello world')) out:class 'type' type(range(3)) out:class 'range'
-
len-返回可迭代对象中元素的个数
len(range(3)) out: 3 len([1,3,5]) out: 3
-
min-返回可迭代对象中最小的元素
min([3,5,5,3,7]) out:3 lo=[3,5,5,3,7] min(set(lo),key=lo.count) out: 7 #通过key值控制比较的序列,返回数量最少的元素
-
max-返回可迭代对象中最大的元素
max([3,5,3,3,7]) out:7 lo=[3,5,5,3,7] max(set(lo),key=lo.count) out: 3 #通过key值控制比较的序列,返回数量最多的元素,相同返回第一个
-
count-统计可迭代对象中某个元素的数量
#使用方法 变量.count() 的方式 str='hello world' str.count('l',0,len(str)) #后面两个参数表示从头到尾 out:3
运算符
算数运算符号
运算符 | 描述 |
---|---|
+ | 相加 |
- | 相减 |
* | 相乘 |
/ | 相除 |
** | 幂 |
// | 整除(向下取整) |
% | 取余 |
比较运算符
运算符 | 描述 |
---|---|
== | 判断等于 |
!= | 判断不等 |
> | 判断大于 |
< | 判断小于 |
>= | 判断大于等于 |
<= | 判断小于等于 |
结果为bool类型
赋值运算符
运算符 | 描述 |
---|---|
= | 简单赋值 |
+= | 加法赋值 |
-+ | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
**= | 幂赋值 |
//= | 整除赋值 |
%= | 取余赋值 |
逻辑运算符
运算符 | 描述 |
---|---|
and | 与 |
or | 或 |
not | 非 |
成员运算符
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
身份运算符
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象 |
is not | is 是判断两个标识符是不是引用自不同对象 |
位运算符
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由**<<** 右边的数字指定了移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数。 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 |
###下面演示位运算符操作,避免忘记。
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "1 - c 的值为:", c
c = a | b; # 61 = 0011 1101
print "2 - c 的值为:", c
c = a ^ b; # 49 = 0011 0001
print "3 - c 的值为:", c
c = ~a; # -61 = 1100 0011
print "4 - c 的值为:", c
c = a << 2; # 240 = 1111 0000
print "5 - c 的值为:", c
c = a >> 2; # 15 = 0000 1111
print "6 - c 的值为:", c
------------------------------------------
1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15
数据容器
list
- 有序可变序列
#创建一个list
list() or [3,4,5]
#创建等差list
list(range(1,10,2))
#相关函数
.append(obj) #——在列表的末尾追加元素
.insert(index,obj) #——在列表中插入元素
.index(obj) #——求指定元素的下标索引
min(obj) #——求列表元素最小值
max(obj) #——求列表元素最大值
.count(obj) #——统计指定元素数量
sum(obj) #——对列表元素求和
del a[index] #删除指定元素
.pop(index=-1) #删除元素,并返回删除的值,与del方式的不同删除最后一个元素
.extend(seq) #追加多个值,以序列的方式(列表,元组)
.remove(obj) #移除列表中某个值的第一个匹配项
.reverse() # 反向列表中的元素
.sort(reverse=False)#对列表对象进行排序,没有返回值,直接对列表进行更改
list() #转换为list类型
##切片操作
list.[start:end:step]
start:开始下标 可以为负数
end:结束下标 可以为负数
step:步长 可以为负数,方向相反
tuple
- 有序不可变序列
创建一个元组
tuple = tuple()
tuple = ()
元组中只包含一个元素时,需要在末尾添加一个逗号。
tuple = (3,)
下标索引
tuple[index]
元组操作
(3,4,5)+(5,)
out: (3,4,5,5)
(3,)*3
out: (3,3,3)
3 in (3,4,'str')
out: True
切片操作
tuple = tuple(range(1,11))
a = tuple[1:5:2]
print(a)
out: (2,4) #切片并不改变原来的元组
内置函数
cmp(tuple1,tuple2)
tuple1, tuple2 = (123,'xyz'), (456,'abc')
print (cmp(tuple1,tuple2))
out: -1
print(cmp(tuple2,tuple1))
out: 1
tuple3 = tuple2+(786,)
print(cmp(tuple2,tuple3))
out: -1
tuple = (123,'xyz')
print(cmp(tuple1,tuple4))
out: 0
下面函数与列表类似
len(tuple)
max(tuple)
min(tuple)
tuple(seq) #转换为元组
del tuple #del object del:关键字通用删除方式,后面接对象
set
- 无序可变序列
- 特点:无序性,唯一性,可变
- 不支持下标索引
创建一个集合
set = {1,2,3}
set = set([1,2,3])
相关用法
alpha = {'a', 'b', 'c', 'a'}
print(alpha)
#可以使用for in 进行遍历。
for ele in alpha:
print(ele)
# 向集合中添加元素.
alpha.add('s')
# 如果要添加多个元素,使用update的方式,添加一个序列。
alpha.update(['a', 'x', 'z'])
# 集合的长度
len(alpha)
out: 5
# 删除元素
alpha.remove('a')
alpha.discard('a') #使用discard方法更加安全,如果集合中元素不存在,使用remove方法可能出错。
dict
- 无序可变序列
- 字典的形式:键——值 key-value
- 不支持下标索引,使用键索引
user = {'id': 1, 'name': 'John wick', 'email': '[email protected]'}
user['id']
out: 1
user['name']
out:'John wick'
# 字典的长度
len(user) # 3
# 添加字典元素
user['age'] = 35
# 得到字典的键
keys = user.keys() # ['id', 'name', 'email', 'age']. This will return a list.
# 得到字典的值
values = user.values() # [1, 'John wick', '[email protected]']
# 删除字典元素
del user['age']
#字典的嵌套
user = {
'id': 1,
'name': 'John wick',
'cars': ['audi', 'bmw', 'tesla'],
'projects': [
{
'id': 10,
'name': 'Project 1'
},
{
'id': 11,
'name': 'Project 2'
}
]
}
str
- 不可变序列
- 有序
- 支持下标索引
## 相关函数
'1_2_3_4'.split('_')
out: ['1','2','3','4']
#分隔一次
'1_2_3_4'.split('_',1)
out: ['1','2_3_4']
#strip 移除头尾指定字符串
str = "00000003210Runoob01230000000";
print (str.strip( '0' )) # 去除首尾字符 0
out: 3210Runoob0123
str = "123abcrunoob321"
print (str.strip( '12' )) # 字符序列为 12
out: 3abcrunoob3
##切片
str = "123abcrunoob321"
str2 = str[1:2]
print (str2)
out: 23
数据类型转换
python中有许多的数据类型,有时候需要对数据进行类型转换。
#转换函数 数据类型()
list()
tuple()
set()
dict() #对象必须为(key,value)组成的元组
int()
long()
str()
float()
complex()
frozenset() #转换为不可变集合
chr() #将一个整数转换为字符
hex() #转换为16进制
oct() #转换为8进制
unichr() #整数转换为Unicode字符
判断与循环
判断
if 条件1:
print('if运行')
elif 条件2:
print('elif运行')
else:
print('else运行')
循环
#while loop
list = list(range(1,11))
i = 0
while i<len(list): #循环判断,语句结果bool类型,True进入循环,false结束循环
if list[i] % 2 ==0:
continue #循环控制语句,结束本次循环,continue后面的语句不执行
print (list[i]) #打印奇数
#for loop
for i in range(9):
if i == 8:
break #循环控制语句,结束所有的循环
print (i) #打印0-7
循环控制语句
控制语句 | 描述 |
---|---|
continue | 在语句块执行过程中终止循环,并且跳出整个循环 |
break | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
pass | pass是空语句,是为了保持程序结构的完整性。 |