#编程语言
**编译型 **
解释型
**静态语言 **
动态语言
**强类型定义语言 **
弱类型定义语言
1. Python历史
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
2. Python基础
2.1 print()函数
作用:控制台打印信息
2.2 注释
-
单行注释#
-
多行注释
三单引导
’‘’
三双引导
‘’‘
2.3 input()函数
作用:从外部获取值
用法:括号中可以提供提示信息
(返回值为字符串类型)
2.4返回python程序的三种方式
(1)解释器环境运行
(2)脚本运行
(3)IDE(集成开发环境)
- pycharm
- sublime
- vs code
- Atom
3. Python中常见数据类型
3.1种类
-
数字(number)
-
整型(int)
- 32 bit,取值范围 -2(31)-2(31)-1
- 64 bit ,取值范围 -2(63)-2(63)-1
-
浮点型(float)
- 带小数点的
-
布尔型(bool)
- True
- False
-
复数型(complex)
- 实部(cpx.real)
- 虚部(cpx.imag)
- 共轭负数(cpx.conjugate())
-
-
字符串(string)
-
列表(list)
-
元祖(tuple)
-
字典(dict)
-
集合(set)
4.变量、常量
4.1变量:
-
规则
- 必须是字母、下划线、数字组合
- 不能以数字开头
- 不可以是Python中的关键字
-
见名知意
-
区分大小写
(1)定义
1 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']
(2)类型测试
type(val_name)
>>> a=1
>>> b=6.6
>>> c='xyz'
>>> tp=1,2,3
>>> type(tp)
<class 'tuple'>
>>> x,y,z=tp
>>> x
1
>>> y
2
>>> z
3
(3)内存地址
id(val_name)
4.2常量:
PI = 3.1415926
举例(两数值交换四种方法):
>>> a=2
>>> b=4
(1)
>>> tmp=a
>>> a=b
>>> b=tmp
(2)
>>> a,b=b,a
(3)
>>> a=a^b
>>> b=a^b #b=(a^b)^b=a
>>> a=a^b #a=(a^b)^a=b
(4)
>>> a=a+b
>>> b=a-b #b=a+b-b=a
>>> a=a-b #a=a+b-a=b
5.数字
5.1常见的数学函数
函数名 | 描述 |
---|---|
abs(x) | 绝对值 |
pow(x,y) | x^y |
round(x,[n]) | 四舍五入,如果给出n,表明四舍五入后小数点的位数 |
math.exp(x) | e的x次幂 |
math.fab(x) | 绝对值,类型为浮点数 |
math.ceil(x) | 返回数字的上入整数 |
math.floor | 返回数字的下舍整数 |
math.log(x,[y]) | 单参数,默认以e为底;双参数,以y为底 |
math.modf(x) | 返回浮点数的小数部分和整数部分 |
math.sqrt(x) | 返回数字的平方根 |
max(x1,x2,…xn) | 返回数字的最大值 |
min(x1,x2,…xn) | 返回数字的最小值 |
6.表达式与运算符
6.1 表达式
- 由变量、常量、运算符组成的式子
6.2 运算符
- 算数运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
- 成员运算符
- 身份运算符
- 位运算符
6.3 Python算术运算
运算符 | 描述 | 实例 |
---|---|---|
+ | 相加/相拼 | a+b |
- | 相减/求差集 | a-b |
* | 相乘/重复 | a* b |
/ | 相除 | a/b |
** | 幂运算 | a ** b |
% | 取余数 | a % b |
// | 求商 | a//b |
>>> divmod(23,4)
(5, 3)
#第一个数是返回商,第二个数是返回余数#
6.4 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
6.5 Python 成员运算符
运算符 | 描述 |
---|---|
in | 如果存在指定序列中,返回True;反之,返回Flase |
not in | 如果不存在指定序列中,返回True;反之,返回Flase |
>>> s="abc"
>>> "a" in s
True
>>> "c" not in s
False
6.6 Python的身份运算符
运算符 | 描述 |
---|---|
is | 判断两个标识符是不是引用自同一个对象 |
not is | 判断两个标识符是不是引用至同一个对象 |
>>> s="abc"
>>> "abc" is s
True
6.7 Python逻辑运算符
and,or,not
7.数据类型的强制转换
强转类型 | 描述 |
---|---|
int(x,[base]) | 将x强制转换为整型,需要制定base基数 |
float(x) | 将x转换为浮点型 |
str(x) | 强转为字符串 |
repr() | 将对象转换为表达式字符串 |
list() | |
tuple() | |
dict() | |
set(x) | |
chr(x) | 将整数转化为字符 |
ord(x) | 将字符转化为数值 |
bin(x) | 转化为二进制 |
oct(x) | 转化为八进制 |
hex(x) | 转化为十六进制 |
8.随机函数
import random
8.1random模块的常见函数:
(1)random.random()
-
用来生成一个0-1之间的随机浮点数
import random for i in range(100): random.random() a = random.random() print(a,end = " ")
(2) random.uniform(a,b)
- 用来生成指定范围[a,b]内的浮点数
import random
for i in range(100):
a = random.uniform(6,8)
print(a,end = " ")
(3) random.randint(a,b)
-
用来生成指定范围[a,b]内的整数
import random for i in range(100): a = random.randint(6,8) print(a,end = " ")
(4) random.randrange(a,b,c)
- 生成指定范围[a,b]内,步长为c的整数
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): li = ["wangzixn","yexiaoxiao","yaunzixuan"] a = random.choice(li) print(a,end = " ")
(6)random.shuffle(x,[random])
- 将列表的元素打乱,随机排列
import random
li = ["wangzixn","yexiaoxiao","yaunzixuan"]
for i in range(6):
random.shuffle(li)
print(li)
(7)random.sample(sequence,k)
-
用来从指定序列中随机获取指定长度片段随机排列,不修改原序列。
import random li = ["cee","lii","lov"] for i in range(6): print(random.sample(li,3))
= random.choice(li)
print(a,end = " ")
(6)random.shuffle(x,[random])
- 将列表的元素打乱,随机排列
~~~python
import random
li = ["wangzixn","yexiaoxiao","yaunzixuan"]
for i in range(6):
random.shuffle(li)
print(li)
(7)random.sample(sequence,k)
-
用来从指定序列中随机获取指定长度片段随机排列,不修改原序列。
import random li = ["cee","lii","lov"] for i in range(6): print(random.sample(li,3))