Python 介绍
Python 特性
- 1、python 语法简单,容易理解,容易学习
- 2、跨平台,可在windows/linux/mac os 等系统上运行
- 3、可以做网站、爬虫、大数据处理、机器学习
- 4、拥有强大、丰富的第三方库 numpy、pandas....
最简单的开始
>>> print('hello,world')
hello,world
>>> 4+5
9
>>> 4*5
20
>>> 2**3
8
变量及代码规范
基本规范
- 1、标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线
- 2、标识符名称的其他部分可以由字母(大写或小写)、下划线('_')或数字(0-9)组成。
- 3、标识符名称是对大小写敏感的
建议
- 1、不要使用单字符
- 2、变量名能清晰表达变量的意思
- 3、合理使用字母中间下划线
>>> apple_price = 5
>>> apple_weight = 2
>>> apple_cost = apple_price * apple_weight
>>> print(apple_cost)
10
>>> print("苹果单价:{}元/斤,苹果重量:{}斤,总价格:{}元。".format(apple_price,apple_weight,apple_cost))
苹果单价:5元/斤,苹果重量:2斤,总价格:10元。
#首字母为数字
>>> 3a = 1
SyntaxError: invalid syntax
#字母中有空格
>>> my age = 15
SyntaxError: invalid syntax
#-非法字符串
>>> my-age = 15
SyntaxError: can't assign to operator
Python 数据类型
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);
可变数据(两个):List(列表)、Dictionary(字典)。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
>>> a,b,c,d = 10,3.14,True,4+3j
>>> print(type(a),type(b),type(c),type(d))
>>> type('')
>>> type([])
>>> type(())
>>> type(set())
>>> type({})
Python基础语法可参考 Python 基础语法一篇入门
1、数字类型
Python3 支持 int、float、bool、complex(复数)。
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
>>> number = 10
>>> number = number + 10
>>> number += 10
>>> number -=10
>>> number *= 10
>>> number /= 10
# 涉及到复杂的计算需要导入函数库
>>> import math
>>> math.pi
3.141592653589793
#保留5位小数
>>> round(math.pi,5)
3.14159
>>> math.sin(math.pi/2)
1.0
#向下取整
>>> math.floor(9.345)
9
#向上取整
>>> math.ceil(9.345)
10
注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
操作符 | 解释 |
---|---|
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
is | 是相同对象 |
2、字符串
详细字符串操作可参考 Python 字符串常见操作总结
#字符串是不可变类型的变量
>>> s = 'nihao'
>>> type(s)
>>> s = 'nihao'
#id 函数,返回一个身份标识符,可以理解为一个变量的内存地址
>>> id(s)
53178808
>>> id('nihao')
53178808
>>> a = "nihao"
>>> id(a)
53178808
>>>
#字符串可以用双引号,也可以用单引号。通过单、双引号的恰当使用,可以避免不必要的字符转义
>>> line = "hello world"
>>> line = "hello world\""
>>> line = 'hello world\''
#字符串切片
>>> s = 'Tim Cook is CEO of Apple'
>>> s[0]
'T'
>>> s[0:8]
'Tim Cook'
>>> s[-5:]
'Apple'
#翻转字符
>>> s[::-1]
'elppA fo OEC si kooC miT'
#字符串切片直接赋值是不可行的
>>> s[0:8] = 'Jobs'
Traceback (most recent call last):
File "", line 1, in
s[0:8] = 'Jobs'
TypeError: 'str' object does not support item assignment
#替换
>>> s.replace('Tim Cook','Jobs')
'Jobs is CEO of Apple'
3、列表 list
List(列表) 是 Python 中使用最频繁的数据类型。
列表是写在方括号[]之间、用逗号分隔开的元素列表。
>>> list1 = [1,2,3,4,5]
>>> list2 = ['a','b','c','d','e']
#获取列表元素
>>> list1[0]
1
>>> list2[1:3]
['b', 'c']
#获取列表长度
>>> len(list2)
5
#list列表是可变的,且不分类型
#列表新增元素
>>> list2.append(100)
>>> list2
['a', 'b', 'c', 'd', 'e', 100]
#列表元素修改
>>> list2[-1]='f'
>>> list2
['a', 'b', 'c', 'd', 'e', 'f']
#判断元素是否在列表中
>>> 'g' in list2
False
>>> 'f' in list2
True
#列表删除,注意是移除列表中某个值的第一个匹配项
>>> list2.remove('f')
>>> list2
['a', 'b', 'c', 'd', 'e']
#移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
>>> list2.pop()
'e'
>>> list2
['a', 'b', 'c', 'd']
#反向列表中元素
>>> list2.reverse()
>>> list2
['d', 'c', 'b', 'a']
>>> list2.reverse()
# 注意和append区别,extend是在列表末尾一次性追加另一个序列中的多个值
>>> list2.extend(['c','e'])
>>> list2
['a', 'b', 'c', 'd', 'c', 'e']
#list2 = list2 + list1 等同于list2.extend(list1)
>>> list3 = list2 + list1
>>> list3
['a', 'b', 'c', 'd', 'c', 'e', 1, 2, 3, 4, 5]
#统计某个元素在列表中出现的次数
>>> list2.count('c')
2
#从列表中找出某个值第一个匹配项的索引位置
>>> list2.index('e')
5
#对原列表进行排序
>>> list2.sort()
>>> list2
['a', 'b', 'c', 'c', 'd', 'e']
#遍历
>>> for i in list2:
print(i)
a
b
c
d
c
e
4、元祖 tuple
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
>>> tup1 = (12,34,56)
>>> tup1
(12, 34, 56)
>>> tup1[2]
56
>>> tup1.index(56)
2
#元祖中元素不能修改
>>> tup1[2] = 78
Traceback (most recent call last):
File "", line 1, in
tup1[2] = 78
TypeError: 'tuple' object does not support item assignment
5、集合 Set
集合(set)是一个无序不重复元素的序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
>>> studentA = {'Tom','Jim','Mary','Tom'}
>>> studentA
{'Mary', 'Jim', 'Tom'}
>>> studentB = {'Jack','Rose','Jim'}
# 差集
>>> studentA - studentB
{'Mary', 'Tom'}
#并集
>>> studentA | studentB
{'Mary', 'Rose', 'Jim', 'Tom', 'Jack'}
#交集
>>> studentA & studentB
{'Jim'}
#A和B中不同时存在的集合
>>> studentA ^ studentB
{'Mary', 'Rose', 'Tom', 'Jack'}
>>>
6、字典类型 dict
>>> Trump = {'sex':'male','job':'president'}
>>> type(Trump)
>>> Trump['job']
'president'
#如果使用列表,比较繁琐
>>> key = ['sex','job']
>>> value = ['male','president']
>>> value[key.index('job')]
'president'
#将两个列表转成字典-拉锁函数zip,列表中每个元素是一个元祖
>>> list(zip(key,value))
[('sex', 'male'), ('job', 'president')]
>>> dict(list(zip(key,value)))
{'sex': 'male', 'job': 'president'}
#在字典中取一个不存在的值会报错,但使用get不会,返回None
>>> Trump['age']
Traceback (most recent call last):
File "", line 1, in
Trump['age']
KeyError: 'age'
#get 返回指定键的值
>>> print(Trump.get('age'))
None
#如果值不在字典中可指定一个默认值
>>> print(Trump.get('age',60))
60
#字典添加及删除
>>> Trump['age'] = 67
>>> Trump
{'sex': 'male', 'job': 'president', 'age': 67}
>>> del Trump['age']
>>> Trump
{'sex': 'male', 'job': 'president'}
#以列表返回一个字典所有的键
>>> Trump.keys()
dict_keys(['sex', 'job'])
#以列表返回字典中的所有值
>>> Trump.values()
dict_values(['male', 'president'])
#以列表返回可遍历的(键, 值) 元组数组
>>> Trump.items()
dict_items([('sex', 'male'), ('job', 'president')])