环境配置
Python解释器安装
IDE安装(Pycharm)
Typora安装
- markdown语法
正课内容
1. Python的历史即概括
(1)Python的出生和应用
吉多·范罗苏姆 Web开发、图像处理、数据分析
(2)Python的语言类型
- 动态
-
静态
-
-
编译型
-
解释型
-
强类型定义语言
-
弱类型定义语言
Python是一种解释型、动态类型、强类型计算机程序设计语言
(3)优缺点
(4)Python的种类
Cpython、Jyhton、PyPy、IronPython…
-
2. Python基础
2.1 第一条编程语句
print("hello,python!")
print("I love you ,charon!")
2.2 print()函数
作用:在控制台打印信息;
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
2.3 注释
-
单行注释
-
一个“#”
# 这是单行注释
-
-
多行注释
-
三单引号
-
三双引号
‘’’
多行注释1
‘’’“”"
多行注释2
“”"print(“Hello, Python!”) # 第一条Python程序,向Python致敬!
print(“I love you ,charon!”)
‘’’
冥王星与卡戎的爱情永存!
‘’’
-
2.4 input()函数
作用:从外部获取值
用法:括号中可以提供提示信息
返回值为字符串类型
>>> a = input()
冥王星
>>> a
'冥王星'
>>> a = input("冥王星的卫星:")
冥王星的卫星:卡戎
>>> a
'卡戎'
>>>
2.5 运行Python程序的三种方式
(1) 解释器环境运行
(2) 脚本运行
(3) IDE
- pycharm
- sublime
- VS Code
- Atom
2.6 Python中常见的数据类型
数据的概念
python中的数据类型
-
数字(number)
- 整形(int)
- 浮点型(float)
- 布尔型(bool)
- 复数(complex)
-
字符串(string)
-
列表(list)
-
元组(tuple)
-
字典(dict)
-
集合(set)
2.7 变量和常量
变量
-
概念:
-
程序可操作的存储区的名称
-
程序运行时存储区中能够改变的数据
每个变量都有自己的特定的数据类型
-
-
作用:
- 将数据存储到内存
-
变量的定义
- 命名
规则:
-
必须是字母、下划线、数字组合
-
不能以数字开头
-
不可以是Python中的关键字
注意:
-
见名知意
-
区分大小写
-
在Python中,单下划线和双下划綫开头的变量有特殊的通途,一般不推荐使用单下划线和双下划綫开头的变量名称
-
-
变量定义
val_name = 初始值
关键词查看
>>> 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']
类型测试 type()
type(val_name)
内存地址 id()
id(val_name)
常量
不变的量
pi, 3.1415926
通常用大写,如
pi = 3.1415926
>>> a = 1 >>> b = 9.9 >>> c="xyz" >>> tp = 1,2,3 >>> x,y,z, = tp >>> x 1 >>> y 2 >>> z 3 >>> type(tp) <class 'tuple'> >>> a,b,c = 111,222,333 >>> a 111 >>> b 222 >>> c 333 >>> x = "abc" >>> y = "def" >>> >>> z = x,y >>> type(z) <class 'tuple'> >>>
互换两个函数的值
>>> a = 123 >>> b = 456 >>> tmp = a >>> a = b >>> b = tmp >>> >>> a 456 >>> b 123 >>> >>> x = 123 >>> y = 456 >>> x, y = y, x >>> x 456 >>> y 123
2.8 数字
种类
-
整型(int)
-
32bit,取值范围-2312^{31}231 - $ 2^{31} $-1
-
64bit, 取值范围-2632^{63}263 - 2632^{63}263-1
以前Python区分短整型和长整型,目前,无这些区分。
-
-
浮点型(float)
- 带有小数点的数字
-
布尔型(bool)
- True
- False
-
复数(complex)
- 实部 (cpx.real)
- 虚部 (cpx.imag)
- 共轭复数 (cpx.conjugate())
常见的数学函数
函数名 | 描述 |
---|---|
abs(x) | 绝对值 |
pow(x, y) | xyx^yxy |
round(x, [n]) | 返回四舍五入的值,如果给出n,表明四舍五入后的小数点的位数 |
math.exp(x) | 返回e的x次幂 |
math.fabs(x) | 返回绝对值,类型为浮点数 |
math.ceil(x) | 返回数字的上入整数 |
math.floor(x) | 返回数字的下舍整数 |
math.log(x, [y]) | 单参数,默认以e为底;双参数,以[y]为底 |
math.modf(x) | 返回浮点数的小数部分和整数部分 |
math.sqrt(x) | 平方根 |
max | 返回最大值 |
min | 返回最小值 |
2.9 表达式与运算符
- 表达式
- 由变量,常量和运算符组成的式子,成为表达式
- 运算符
- 算术运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
- 成员运算符
- 身份运算符
- 位运算符
Python算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 相加/拼接 | a + b |
- | 相减/求差集 | a - b |
* | 相乘/重复 | a * b |
/ | 相除 | a / b |
** | 幂运算 | a ** b |
% | 取模(余数) | a % b |
// | 取整除(商) | a // b |
divmod(x,y)
返回:返回: x除以y得到的商和余数(以元组形式)
Python比较运算符
Python赋值运算符
Python位运算符
按位运算符是把数字看做二进制来计算的。常见的位运算符如下:
运算符 | 描述 |
---|---|
& | 按位"与",同为1才为1,否则为0 |
| | 按位"或",有1即为1 |
^ | 按位"异或",不同为1 |
~ | 按位"取反",~x 得到 -x-1 |
<< | 左移运算符 |
>> | 右移运算符 |
a = 15
b = 31
二进制分别对应:
a ---> 0000 1111
b ---> 0001 1111
a & b 0000 1111
a | b 0001 1111
a ^ b 0001 0000
a >> 2 0000 0011
a << 2 0011 1100
python 成员运算符
测试是否包含某个成员,一般测试字符串,列表,元组
运算符 | 描述 |
---|---|
in | 如果存在于指定序列中,返回True;否则,False |
not in | 如果不存在于指定序列中,返回True;否则,False |
>>> sr = "abc"
>>> "a" in sr
True
>>> "a" not in sr
False
>>> li = list(sr)
>>> li
['a', 'b', 'c']
>>> "a" in li
True
>>>
python的身份运算符
用于比较两个对象的存储单元
id()
运算符 | 描述 |
---|---|
is | 判断两个标识符是不是引用自同一个对象 |
not is | 判断两个标识符是不是引用自同一个对象 |
Python逻辑运算符
and
or
not
2.10 数据类型的强制转换
强转类型 | 描述 |
---|---|
int(x, [base]) | 将x强制转化为整型。如果x是字符串,需要制定base基数 |
float(x) | 将x转换为浮点型 |
str(x) | 强转为字符串 |
repr(x) | 将对象转换为表达式字符串 |
list(x) | 列表序列 |
tuple(x) | 计算元组 |
dict(x) | 创建字典 |
set(x) | 关系测试 |
chr(x) | 将整数转化为字符 |
ord(x) | 将字符转化为数值 |
bin(x) | 转换为二进制 |
oct(x) | 转换为八进制 |
hex(x) | 转换为十六进制 |
# int
>>> a = 12.3
>>> int(a)
12
>>> sr = "123"
>>> int(sr)
123
>>> int(sr, 8)
83
>>> 8**2 + 2 * 8 + 3
83
>>> int(sr, 16)
291
2.11 随机函数
导入这个模块
import random
random模块的常见功能:
(1) random.random()
-
用来生成一个0-1的随机浮点数 [0, 1)
import random # print(dir(random)) for i in range(100): a = random.random() print(a, end=" ")
(2) random.uniform(a, b)
-
用来生成指定范围内的浮点数,[a, b]
import random # print(dir(random)) for i in range(100): a = random.uniform(6, 8) print(a, end=" ")
(3) random.randint(a, b)
-
用来生成指定范围内的整数,[a, b]
import random # print(dir(random)) for i in range(100): a = random.randint(6, 10) print(a, end=" ")
(4) random.randrange([start], stop, [step])
- 从指定范围内,按指定基数递增或者递减的集合中,随机获取一个整数
random.randrange(1, 16, 2)
1, 3, 5, 7, 9, 11, 13, 15
import random
for i in range(100):
a = random.randrange(1, 16, 2)
print(a, end=" ")
(5) random.choice(sequence)
-
从序列中随机获取一个元素,sequence可以为列表,字符串或者元组
import random for i in range(100): # a = random.randrange(1, 16, 2) b = random.choice(range(1, 16, 2)) print(b, end=" ")
(6)random.shuffle(x[, random])
-
用来将一个列表的元素打乱。即将列表的元素随机排列。
import random li = ["C Language", "C++", "Java", "VB", "C#", "Python"] # sr = "C Language" for i in range(6): # a = random.randrange(1, 16, 2) random.shuffle(li) print(li)
(7)random.sample(sequence, k)
- 用来从指定序列中随机获取指定长度的片段并随机排列。但,不会修改原来序列。
import random
li = ["C Language", "C++", "Java", "VB", "C#", "Python"]
for i in range(6):
print(random.sample(li, 4))