一python
1.python 可定义为 面向对象的脚本语言。
2.python标准实现方式是将源代码的语句编译(或者说转换)为字节码的形式,再将字节码翻译出来。
字节码是一种与平台无关的格式,具有可移植性
3.冻结二进制文件
让python程序生成独立可执行二进制代码,将程序的字节码、pvm(解释器)以及需要的python支持程序捆绑起来形成的文件包
4.交互的运行代码 在linux终端输入 python3 进入交互模式
每天命令输入回车后都会立即执行,用一个空行结束复合语句
5.作为脚本运行 将代码保存为 .py
运行: python3 1.py
二 基本语法
- 变量不需要声明,每个变量在使用前必须赋值,标识符大小写敏感,字母或"_"开头 ,其他部分有数字、字母
- # 表单行注释 ""” / ''' 三个双/单引号多行注释 首位使用双/单引号,必须一致
- “ 和 ‘ 双引号和单引号使用完全相同
- \反斜杠 表接下一行,在” “、' '、{ } 、[ ]、( )、中不能使用
- 仅在{ } 、[ ]、( )中使用逗号分隔
- 使用行和缩进
- 缩进的空格数可变(必须>0) 同一代码块包含相同缩进空格数
- 习惯 将空行作为分隔,分隔两段不同功能的代码
7. python支持分号分隔语句(不推荐使用分号作为语句的结束标志,同一行中多条语句时分号不可省略)
python主要通过换行来识别语句的结束,通常一行只写一条语句(特色)
8. 代码块 if、while、def、class 这样的复合语句,首行以关键字开始,以冒号结束,之后该行一行或多行构成一个代码块
9. python 不支持单字符类型
10 python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象
11 可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。
三 数据类型 Number、String、List、Tuple、Sets、Dictionary
1.数Number
一: 数的类型 bool、int、float(12.1 、3E-2)、complex(1+2j)
a,b,c,d=10,1e-2,False,1+2j
print(type(a),type(b),type(c),type(d))
print(c)
print(c+1)
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
False
1
- 1. bool中True值为1 False为0
- 2. python 可以同时给多个变量赋值,
- 3. 变量赋值时Number对象就会被创建,del语句 del(a[,b...])或 del a[,b...] []为可选择
- 4. 复数赋值的两种方式
- c=complex(1,-1)
- d=2+3j
a=b=c=1
d,e=0.1,2j
del(a)
print(a)
运行出错
Traceback (most recent call last):
File "1.py", line 4, in <module>
print(a)
NameError: name 'a' is not defined
#复数赋值的两种方式
c=complex(1,-1)
d=2+3j
print(c)
print(d)
#运行结果
(1-1j)
(2+3j)
二:数的运算
+加 -减 *乘
/ 除法 (两整数相除得到浮点数)
// 除法(两整数相除得到整数,小数舍去)
三、进制转换
a=20
print(hex(a))
print(oct(a))
print(bin(a))
0x14
0o24
0b10100
2.字符串String
- 不可以更该其子串,可以将变量重新赋值
- 使用"或'进行赋值
- 使用""" 或'''可以指定多行赋值
- python 不支持单字符类型
- 特殊字符使用 \ 转义
- 在字符串前加 R或r
x='''ab
c\nd'''
#运行结果
ab
c
d
x=R'''ab
c/nd'''
#运行结果
ab
c/nd
字符串的运算
a="abcde" b="xy" 运算 结果
1. +字符串连接 a+b abcdexy
2. * 重复输出字符串 b*2 xyxy
3. [ ] 通过索引来获取字符串中的字符 a[1] b
4. [ : ]截取字符串的一部分 a[1:3] bc
5. in成员运算符 包含给的字符返回True 'ab' in a True
6. not in成员运算符 b不包含给的字符返回True 'ab' in a False
8. R/r
9.% 格式输出
%% b百分号
%s 字符串
%d 整数
%u无符号整数 %x 无符号八进制 %x无符号十六进制
%f浮点数 %e 科学计数格式化浮点数
%g 浮点数字(根据值的大小采用%e或%f)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中
3列表 List [ ] (类似数组?)
1.写在[ ]内 用逗号分隔开元素列表
2.元素可以是列表(可以嵌套)
3. 元素值可更改
4.元素类型可为数、字符串、元组、列表、集合、字典
5.可被切片和截取 0为开始 -1为尾部的位置
一:len(list)返回最外层元素的个数
二:max(list)/min(list) 当list元素同一类型是可以比较
三: list(seq)将元组转换成列表(仅转换最外层元素)
a=((1,2),3,(4))
print(list(a))
#运算结果
[(1, 2), 3, 4]
方法
1 | list.append(obj) 在列表末尾添加新的对象 |
2 | list.count(obj) 统计某个元素在列表中出现的次数(仅统计最外层) |
3 | list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表,无返回值,但会在已存在的列表中添加新的内容。) |
4 | list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) 将对象插入列表 无返回值 |
6 | list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项,无返回值 |
8 | list.reverse() 反向列表中元素,无返回值 |
9 | list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序 ,cmp比较的具体规则,key比较的元素(当多维时),False 是升序(默认) |
4 元组 Tuple()
1.创建()内 逗号分隔
创建空 tup1=()
仅含一个元素 tup2=(1,)
2.元素不可修改
3.下标从0开始 可截取,-1为尾
4 +连接 *重复 in 成员运算符 长度len(tup) min(tup) max(tup)
5 del删除
5 字典 Dictionary
1.字典 { } 无序的键:值对的集合 ,创建空字典必须使用{}
2. 键key必须使用不可变类型 同一字典 key唯一
3.内置构造函数 dict() 以及 clear() keys() values()
6 集合 set () 或 { }
set集合 无序不重复元素的序列 (类似枚举?)
1.创建 { } 元素间逗号隔离
set( "字符串" ) 将每个字符当作一个元素 ,创建 空集合
set({ }) 小括号内使用{},创建多个元素 的集合
2.无法通过下标索引
3.不可变类型无法修改元素
4.操作
求交集: set1 & set2
求并集: set1 | set2
相当于set1|set2 -(set1&set2): set1 ^ set2
求差集: set1 - set2
判断是否是子集or超集: set1.issubset(set2) or set1.issubset(set2)
转变成list or tuple: list(set1) or tuple(set1)
7 转换
1. str(x) 将对象x转换成字符串 一般是将数值转成字符串
2. repr(x) 将对象x转换成 表达式字符串
repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思。如list,dict使用str()是无效的,但使用repr可以,这是为了看它们都有哪些值,为了显示之用。
3. dict(d) 创建一个字典 d必须是一个序列{key,vaue}元组
4 set(x) 转换成 可变集合
5 frozenset(s) 转换成不可变集合
6. chr(x) 将一个整数转换成字符 unichr(x) 转换成unicode字符
7. ord(x) 将一个字符转换成整数
8.int(x) float(x)
9 eval(expression, globals=None, locals=None) --- 官方文档中的解释是,将字符串str当成有效的表达式来求值并返回计算结果。globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。