一.python历史概况
1出生和应用
2语言类型
- 编译型
- 解释型
- 静态语言
- 动态语言
- 强类型定义语言
- 弱类型定义语言
3.优缺点
4.python种类
二.python基础
1.第一条编程语句
2.注释
- 单行注释
#单行注释
-
多行注释
-
三单引号
-
三双引号
''' 多行注释 ''' """ 多行注释 """
-
3.input()函数(返回字符串数据类型)
作用:从外部获取值
type(a) 查看数据类型
print("hello world")
4.运行python程序的三种方式
(1)解释器环境运行
win+R>cmd>Python
(2)脚本文件运行
win+R>cmd>方向路径>python 文件名
-i用法
(3)IDE
- pycharm
- sublime
- VS Code
- Atom
5.python中常见的数据类型
数据的概念
Python中的数据类型(常见)
- 数字(number)
- 整形(int)
- 浮点型(float)
- 布尔型(boo)
- 复数(complex)
- 字符串(string)
- 列表(list)
- 元祖(tuple)
- 字典(dict)
- 集合(set)
6.变量和常量
变量
-
概念
-
程序可操作的存储区的名称
-
程序运行时存储区中能够改变的数据
每个变量都有自己特定的数据类型
-
-
作用
- 将数据存储到内存
-
变量的定义
- 命名
规则:
- 必须是字母、下划线、数字组合
- 不能以数字开头
- 不可以是Python中的关键字
注意:
- 见名知意
- 区分大小写
- 在Python中,单下划线和双下划线开头的变量有特殊的用途,一般不推荐使用单下划线和双下划线开头的变量名称
-
变量的定义
-
val_name = 初始值
-
python关键词
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中下划线开头变量一般有特殊用途最好不用
_12(可以)
字典值改变地址不变
类型测试 type()
type(val_name)
内存地址id()
id(val_name)
常量
不变的量
pi,3.1415926
通常用大写,如
PI = 3.1415926
a = 1,2,3
逗号(,)相连默认为元祖
互换两元素的值
- 直接将a,b值交换(实际在元组中)
a,b = b,a
- 通过添加中间变量
temp = a
a = b
b = temp
- 通过逻辑运算
a = a + b
b = a - b
a = a - b
7.数字
-
整形(int)
- 32bit,取值范围 − 2 31 − 2 31 − 1 -2^{31}-2^{31}-1 −231−231−1
- 64bit,取值范围 − 2 63 − 2 63 − 1 -2^{63}-2^{63}-1 −263−263−1
以前Python区分短整型和长整型,目前无这些区分
-
浮点型(float)
- 带有小数点的数字
-
布尔型(bool)
- True
- False
-
复数(complex)
- 实部(cpx.real)
- 虚部(cpx.imag)
- 共轭复数(cpx.conjugate())
常见的数学函数
函数名 | 描述 |
---|---|
abs(x) | 绝对值 |
pow(x,y) | x y x^y xy |
round(x,[n]) | 返回四舍五入的值,n表示位数,可空 |
math.exp(x) | 返回e的x次幂 |
math.fabs(x) | 返回绝对值,类型为浮点数 |
math.ceil(x) | 返回数字的上入整数 |
math.floor(x) | 返回数字的下舍整数 |
math.log(x,(y)) | log:单参数,默认以e为底数;双参数,以y为底 |
math.modf(x) | 返回浮点数的小数部分和整数部分 |
math.sqrt(x) | 平方根 |
m a x ( x 1 , x 2 , . . . ) max(x_1,x_2,...) max(x1,x2,...) | 取最大值(字典返回key值) |
m i n ( x 1 , x 2 , . . . ) min(x_1,x_2,...) min(x1,x2,...) | 取最大值 |
dir() 查询所有参数
dir(模块名) 查询这个模块里所有参数
8.表达式与运算符
- 表达式
- 由变量、常量和运算符组成的式子,成为表达式
- 运算符
- 算数运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
- 成员运算符
- 身份运算符
- 位运算符
Python算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 相加/拼接 | a + b |
- | 相减/求差集 | a - b |
* | 相乘/重复 | a * b |
/ | 相除 | a / b |
% | 取模(余数) | a % b |
// | 取整除(商) | a // b |
拓展
divmod(x,y)
返回(商,余数)
divmod(23,4) (5, 3)
Python比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 比较对象是否相等 | print(a == b) #(输出)False |
!= | 比较两个对象是否不相等 | print(a! = b) #(输出)True |
> | 返回x是否大于y | print (a > b) #(输出)False |
< | 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写 | print (b < a) #(输出)False |
>= | 返回x是否大于等于y | print(b >= a) #(输出)True |
<= | 返回x是否小于等于y | print(a <= b) #(输出)True |
Python赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | c += a表示 c = c + a。 |
-= | 减法赋值运算符 | c -= a表示 c = c - a。 |
/= | 除法赋值运算符 | c /= a表示 c = c / a。 |
*= | 乘法赋值运算符 | c *= a表示 c = c * a。 |
//= | 整除赋值运算符 | c //= a表示 c = c // a。 |
%= | 取模赋值运算符 | c %= a表示 c = c % a。 |
**= | 幂赋值运算符 | c **= a表示 c = c ** a。 |
Python位运算符
位运算符是把数字看作二进制来计算的。常见的位运算符如下:
运算符 | 描述 |
---|---|
& | 按位“与”,同为1才为1,否则为0 |
| | 按位“或”,有1即为1 |
^ | 按位“异或”,不同为1,相同为0 |
~ | 按位“取反”,~x 得到-x-1 |
<< | 左移运算符 |
>> | 右移运算符 |
a = 15
b = 31
二进制分别对应
a ---> 0000 1111
b ---> 0001 1111
a&b 0000 1111 即为15
a|b 0001 1111 即为31
a^b 0001 0000 即为16
a>>2 0000 0011
a<<2 0011 1100
Python成员运算符
是否包含某个成员,一般测试字符串、列表、元祖
运算符 | 描述 |
---|---|
in | 如果存在指定序列,返回True,否则False |
not in | 如果不存在指定序列,返回False,否则True |
Python身份运算符
用于比较两个对象的存储单元 : id()
运算符 | 描述 |
---|---|
is | 判断两个标识符是不是引用同一个自同一个对象 |
not is | 判断两个标识符是不是引用同一个自同一个对象 |
Python逻辑运算符
and:
print(15 and 30) #同时为真输出后面的数值
30
print(0 and 15)
0
逻辑运算中全为真才为真
or:其一为真即为真
not:not真为假;not假为真
9.数据类型的强制转换
强转类型 | 描述 |
---|---|
int(x,[base]) | 将x强制转化为整型。如果x是字符串,需要制定基数 |
float(x) | 将x转换为浮点型 |
complex(x) | 将x转换为复数型 |
str(x) | 将x转换为字符串 |
repr(x) | 将x转换为表达式字符串 |
list(x) | 将x转换为列表 |
tuple(x) | 将x转换为元祖 |
dict(x) | 将x转换为字典 |
set(x) | 将x转换为无序不重复元素集 |
chr(x) | 讲整数转换为字符 |
ord(x) | 将字符转化为整数 |
bin(x) | 转换为二进制 |
oct(x) | 转换为八进制 |
hex(x) | 转换为十六进制 |
str = '123'
>>> int(str)
123
>>> int(str,8)
83
>>> 8**2 + 2*8 + 3*1
83
>>> str = 'city college\n Zhejiang'
>>> print(str)
city college
Zhejiang
>>> print(repr(str))
'city college\n Zhejiang'
10.随机函数
导入模块
import random
random模块的常见功能:
(1)random.random()
- 用来生成一个0-1的随机浮点数[0,1)
import random
#print(dir(random))
print(random.random())
>>>0.23333
(2)random.uniform(a,b)
- 用来生成指定范围内的浮点数[a,b]
import random
#print(dir(random))
print(random.uniform(2,3))
2.33333
(3)random.randint(a,b)
- 用来生成指定范围内的整数[a,b]
import random
#print(dir(random))
print(random.randint(1,8))
>>>1
(4)random.randrange([start],stop,[step])
- 从指定范围内,按指定基数递增或递减的集合中,随机获得一个整数
import random
#print(dir(random))
print(random.randrange(1,16,2))
>>>1
(5)random.choice(sequence)
- 从序列中随机获取一个元素,sequence可以为列表,字符串或者元祖
import random
#print(dir(random))
print(random.choice(range(1,16,2)))
>>>1
(6)random.shuffle(x[,random])
- 用来将一个列表的元素打乱,将列表的元素随机排列
不能直接赋值 a = random.shuffle() 会返回none
(7)random.sample(sequence,k)
- 用来从制定序列中随机获取指定长度的片段的并随机排列。但不会修改原来序列。
import random
li = [1,2,3,4,5,6,7]
print(random.sample(li, 2))
>>>[2, 7]