简介

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是空语句,是为了保持程序结构的完整性。