3.24 7.13 Python基础汇总
对象类型 | 类型名称 | 示例 | 简要说明 | 备注 |
数字 | int,float,complex | 1234,3.14,1.3e5,3+4j | 数字大小没有限制 | 十六进制用0x 前缀和0-9,a-f表示 |
字符串 | str | 'swd',"I'am a student",'''Python''' | 使用单引号、双引号、三引号作为定界符 | 标记实例:*
print('I\'m\"ok\"!') 这里用到转义字符\ |
字节符 | bytes | b‘hello world’ | 以字母b引导,可以使用单、双、三引号作为定界符 | |
列表 | list | [1,2,3],['b','a',1,2,3] | 所有元素放在一对方括号中,元素之间使用逗号分隔,其中的元素可以是任意类型 | |
字典 | dict | {1:'food',2:'tast',3:'import'} | 所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为”键:值“ | |
元组 | tuple | (2,-5,6),(-3,) | 同理,但是只有一个元素的话后面的逗号不能省略 | |
集合 | set ,frozenset | {‘a','b','c'} | 所有元素放在一对大括号中,元素之间使用逗号分隔,元素不允许重复; | |
布尔值 | bool | Ture,False | 逻辑值,关系运算符 | 注意开头大写,常与and,or,not运算 |
空类型 | NoneType | None | 空值 | None是一个特殊的值,None不能理解为0,0是有意义的 |
异常 |
Exception ValueError TypeError |
python内置大量异常类,分别对应不同类型的异常 | ||
文件 | f=open('data.dat','rb') | open是python的内置函数,使用指定的模式打开文件,返回文件对象 | ||
其他迭代对象 | 生成器对象、range对象、zip对象、enumerate对象、map对象、filter对象 | 具有惰性求值的特点 | ||
编程单元 |
函数(使用def 定义) 类(使用class定义) 模块(类型为module) |
类和函数都属于可调用对象,模块用来集中存放函数、类、常量或其他对象 |
*转义字符
转义字符\可以转义很多字符,比如\n
表示换行,\t
表示制表符,\\
表示的字符就是\
为了简化,添加了r' ' 表示 ' '内部的字符串默认不转义
变量
python 采用基于值得的内存管理模式。赋值语句得执行过程是:
首先把等号右侧表达式得值算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量并指向这个内存地址
******其中里面存储了值的内存地址或者引用,这也是变量类型随时可以改变的原因********
#1 变量名必须以字母或下划线开头,不能用数字开头
#2 不能有空格或标点符号
#3 不能使用关键字作为变量名
#4 不建议使用系统内置的模块名、类型名或函数名
#尽量统一大小写,Student 和 student
常量
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量
python是动态语言
————————》分数 高精度实数
Fractions 支持分数运算
计算最大公约数gcd()
高精度实数类Decimal
利用from fractions import Fraction/Decimal
—————————》字符串
“+”————————》》连接字符串
不同定界符之间可以互相嵌套——————————》》 ‘’‘Tom said that ,"let's go".'''
### 除了支持Unicode编码的str类型字符串外,还支持字节串类型 bytes
********************列表、元组、字典、集合
比较项 | 列表 | 元组 | 字典 | 集合 |
类型名称 | list | tuple | dict | set |
定界符 | 方括号【】 | 圆括号() | 大括号{} | 大括号{} |
是否可变 | 是 | 否 | 是 | 是 |
是否有序 | 是 | 是 | 否 | 否 |
是否支持下标 | 是 | 是 | 是 | 否 |
元素分隔符 | 逗号 | 逗号 | 逗号 | 逗号 |
对元素形式的要求 | 无 | 无 | 键:值 | 必须可哈希 |
对元素值得要求 | 无 | 无 | “键”必须可哈希 | 必须可哈希 |
元素是否可重复 | 是 | 是 |
“键”不允许重复, “值”可以重复 |
否 |
元素查找速度 | 非常慢 | 很慢 | 非常快 | 非常快 |
新增和删除元素速度 | 尾部操作快,其他位置慢 | 不允许 | 快 | 快 |
可哈希的数据结构,可以通过迭代等方法进行去重等;但不可哈希的数据结构,往往在去重的方法上需要做相应的改造,例如嵌套字典的列表,根据字典中的某些元素属性去重,嵌套列表去重等.
运算符和表达式
运算符 | 功能说明 |
+ | 算术加法,列表、元组、字符串合并于连接 |
- | 算术减法,集合差集,相反数 |
* | 算术乘法,序列重复 |
/ | 真除法 |
// | 求整商,但如果操作数中有实数得话,结果为实数的整数 |
% | 求余数,字符串格式化 |
** | 幂运算 |
<,<=、>、>=、==、!= | (值)大小比较,集合的包含关系比较 |
or | 逻辑或 |
and | 逻辑与 |
in | 成员测试 |
not | 逻辑非 |
is | 对象同一性测试,即测试是否为同一个对象或内存地址是否相同 |
|、^、&、<<、>>、~ |
位或、位异或、位与、左移位、右移位、位求反 |
&、|、^ | 集合交集、并集、对称差集 |
@ | 矩阵相乘运算符 |
1.+加法运算
不支持不同类型的对象之间相加或连接
2.%运算符号运算
a='%c,%d'%(65,65)
print(a) 把65 分别格式化位字符和整数
3.**运算符表示幂乘,等价于内置函数pow().
a=3**2
print(int(a))
b=pow(3,2)
print(b)
如果要取平方根那么就0.5次方
PS /除法计算结果是浮点 //地板除只取整数部分 %余数运算,可以得到两个数相除的余数
4.关系运算符
一个字符串和一个数字进行大小比较是毫无意义的
c={1,2,3}<{1,2,3,4,5} 测试是否为子集 c={1,2,3}>{1,2,3,4} 集合之间的包含测试
5.成员测试运算符in与同一性测试运算符is
d=5 in range(1,10,1)
print(d) ##range()是用来生成指定范围数字的内置数字
e='abdc'in'abdcsdadedwew'
print(e) ##子字符串测试
6.位运算符与集合运算符
位运算只能用于整数
内部执行过程为:首先将整数转换为二进制数,然后右对齐,每一个按位进行运算,最后再把计算结果转换为十进制数字返回。
位与和位或 就不多说
异或的公式为: 相同则置0,不同则置1.
集合的交集,并集,对称差集等运算借助于位运算来实现,并且差集是用减号实现。
逻辑运算符
a=3 and 5
print(a)
##### 最后一个计算的表达式的值作为整个表达式的值
a= not 3
print(a) ###### not加一个数字表示是 False
同理 not 0 为true
附加内容:
a=+(+3)
print(a) 输出为3。 于++i等价 相反-(-i)一样
关键字 | 含义 |
Flase | 常量,逻辑假 |
None | 常量,空值 |
True | 常量,逻辑真 |
and | 逻辑与运算 |
as | 在import或expect语句中给对象起别名 |
assert | 断言,用来确认某个条件必须满足,可用来帮助调试程序 |
break | 用在循环层里面,提前中断break所在的程序里面 |
class | 用来定义类 |
continue | 用在循环中,提前结束本次循环 |
def | 用来定义函数 |
del | 用来删除对象或对象成员 |
elif | 用在选择结构,循环结构和异常处理结构中 |
except | 用在异常处理结构中,用来捕获特定类型的异常 |
finally | 用在异常处理结构中,用来表示不论是否发生异常都会执行的代码 |
global | 定义或声明全局变量 |
if | 用在选择结构中 |
import | 用来导入模块或模块的对象 |
in | 成员测试 |
is | 同一性测试 |
lambda | 用来定义lambda表达式,类似于函数 |
nonlocal | 用来声明nonlocal变量 |
not | 逻辑非运算 |
or | 逻辑或运算 |
pass | 空语句,执行该语句时什么都不用做,常用作占位符 |
raise | 用来显示抛出异常 |
return | 返回值,如果没有返回值的话,表示返回值none |
try | 在异常处理结构中用来限定可能会引发异常的代码块 |
while | 用来构造while循环结构,只要条件表达式等价于True就重复执行限定的代码块 |
with | 上下文管理,具有自动管理资源的功能 |
yield | 在生成器函数中用来返回值 |
#######缺一个表格
类型转换与类型判断
内置函数 bin()、oct()、hex()、
### 把整数转换为二进制,八进制,十六进制。
b=(int('0b111',0))
print(b) ****不明白的一个点
ord()和 chr()是一对功能相反的函数,ord()用来返回单个字符的unicode,
而chr(0则用来返回Unicode编码对应的字符,str()则直接将其任意类型参数转换为字符串
# a=ord('梁')
# b=ord('锦')
# c=ord('成')
# print(a,b,c) a=''.join((map(chr,(26753,38182,25104))))
print(a) 或者是ASCII可以把对象转换为ASCII码表示形式 内置类bytes用来生成字节串,或者把指定对象对象转换为特定编码的字节串 a=bytes('梁锦成','utf-8')
print(a)
b=bytes('梁锦成','gbk')
print(b) c=str(b'\xc1\xba\xbd\xf5\xb3\xc9','gbk')
print(c) d='梁锦成'.encode('utf-8')
print(d) 列表:list() 元组:tuple() 字典:dict() 可变集合set() 不可变集合frozenset()
a=dict(zip('1234','abcdfgt'))###创建字典
print(a) 反正就是 创建一个可变集合,并且自动去除重复————————》》set函数 创建一个不可变的集合,并且都可以自动消除重复————————————》》frozenset函数 内置函数 type() 和 isinstance() 可以用来判断数据类型,并且经常用来进行检查,可以避免错误的参数类型导致函数崩溃或返回意料之外的结构,
a=type({3})in (list,tuple,dict)
print(a) b=type({3}) in(list,tuple,dict,set)
print(b)
a=isinstance(3j,int)
print(a) b=isinstance(3,int)
print(b) c=isinstance(3j,(complex,float,int))
print(c) ****************判断一个数是否为**的类型
a=max(['2','111'],key=len)
print(a) from random import randint ******所有子列表中第二个元素最大的子列表
b=[[randint(1,50) for i in range(5)]for j in range(30)]
print(max(b,key=lambda x:x[0]))
a=sum(range(1,11),5)
print(a) ****指定start参数为5,等价于5+sum(range(1,11))
a=sum(2**i for i in range(200))
print(a) #等比数列前n项的和 ##上一行的可以这样代替 b=int('1'*200,7)
print(b) c=sum(range(101))
print(c) #101个人在开会,互相握手次数,不重复握手 基本输入与输出 input()和 print()是python的基本输入输出函数,前者用来接收用户的键盘输入,后者用来把数据以指定的格式输出到标准控制台或指定的文件对象。 不论对象输入什么内容,input()一律作为字符串对待,必要的时候可以使用内置函数int()、float()或 eval() 对用户输入的内容进行类型转换 print(value1,value2,…………,sep='',end='',file=sys.stdout.flush=False) ##切记要记住 ***读取5个字符,如果不足5个,等待继续输入
import sys
x=sys.stdin.read(5)
print(x)
import sys
x=sys.stdin.readline('dawedsdsdad')
print(x) ###从缓冲区内容比需要的少,遇到换行符也结束。
###如果缓冲区内容比需要的多,就截断然后输出。 排序与逆序 sorted()对列表、元组、字典、集合、或其他可迭代对象进行排序并返回新列表, reversed()对可迭代对象(生成器对象和具有惰性求值特性的zip、map、filter、enumerate等类似对象除外)进行翻转(首位交换)并返回可迭代的reversed对象
x=list(range(11))
import random
random.shuffle(x)###打乱顺序
# print(x)
b=sorted(x)###以默认规则排序
# print(b) c=sorted(x,key=lambda item:len(str(item)))
print(c) (这个暂时还不会)MARK 枚举与迭代 enumerrate ()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象,其中每个元素都是包含索引和值的元组
a=list(enumerate('abcd')) ##枚举字符串中的元素
print(a) b=list(enumerate(['Python','Greate']))##枚举列表中的元素
print(b) c=list(enumerate({'a':13,'b':14,'c':124}.items()))##枚举字典的元素
print(c) for index,value in enumerate(range(10,15)): ##枚举range对象中的元素
print((index,value)) for item in enumerate (range(5),6): ##索引从6开始
print(item,end=' ') iter()函数用来返回指定对象的迭代器,有两种方法:iter(iterable) 和 iter(callable,sentinel)
iter(iterable) 前者要求参数必须为序列或者有自己的迭代器,
iter(callable,sentinel) 后者会持续调用参数callable直至其返回sentinel。
next()函数用来返回可迭代对象中的下一个元素,适用于生成器对象以及zip、enumerate、reversed、map、filter、iter等对象,
等价于这些对象的__next__()方法
3.24 7.13 Python基础汇总的更多相关文章
- 7.13 Python基础语法
Python基础语法 编码: 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码 python2.7中有两个函数 ...
- 2019.04.13 python基础
第一节 主要讲python背景 没什么要注意的 了解记住概念就好 python官网 python.org 自带shell 可以运行python代码 在IDLE中怎么运行代码 新建文本 ...
- 13.python基础试题(二)
借鉴:https://www.cnblogs.com/shengyang17/p/8543712.html https://www.cnblogs.com/you-wei1/p/9693254.htm ...
- 1.13 Python基础知识 - 字典和集合
一.字典 字典是一组键-值对的数据结构.每个键对应一个值.在字典中,键不能重复.根据键可以查询到值.字典是键和值的映射关系 字典的定义: 字典通过花括号中用逗号分隔的元素(键-值.键-值对使用冒号分隔 ...
- 二十四. Python基础(24)--封装
二十四. Python基础(24)--封装 ● 知识结构 ● 类属性和__slots__属性 class Student(object): grade = 3 # 也可以写在__slots ...
- 十三. Python基础(13)--生成器进阶
十三. Python基础(13)--生成器进阶 1 ● send()方法 generator.send(value) Resumes the execution, and "sends&qu ...
- Python 学习笔记 编程基础汇总000
编程基础知识汇总000 1.计算机结构 2.编程语言分类 3.字符编码由来 计算机结构 计算机组成五大部件: 控制器.运算器.存储器.输入.输出 控制器(Controler):对程序规定的控制信息进行 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- (转)python资料汇总(建议收藏)零基础必看
摘要:没料到在悟空问答的回答大受欢迎,为方便朋友,重新整理汇总,内容包括长期必备.入门教程.练手项目.学习视频. 一.长期必备. 1. StackOverflow,是疑难解答.bug排除必备网站,任何 ...
随机推荐
- 洛谷P1049 装箱问题
//01背包 价值等于体积 求所剩最小体积 #include<bits/stdc++.h> using namespace std; ; ; int c,n,v[maxn],f[maxv] ...
- H3C 早期以太网技术介绍
- Adam那么棒,为什么还对SGD念念不忘 (1) —— 一个框架看懂优化算法
机器学习界有一群炼丹师,他们每天的日常是: 拿来药材(数据),架起八卦炉(模型),点着六味真火(优化算法),就摇着蒲扇等着丹药出炉了. 不过,当过厨子的都知道,同样的食材,同样的菜谱,但火候不一样了, ...
- Adam那么棒,为什么还对SGD念念不忘 (2)—— Adam的两宗罪
在上篇文章中,我们用一个框架来回顾了主流的深度学习优化算法.可以看到,一代又一代的研究者们为了我们能炼(xun)好(hao)金(mo)丹(xing)可谓是煞费苦心.从理论上看,一代更比一代完善,Ada ...
- H3C 帧中继协议栈
- Json介绍与Ajax技术
AJAX AJAX准备知识:JSON 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据 ...
- layer/layui弹出层插件bug
<button class="layui-btn" lay-submit lay-filter="formDemo" id="layui-btn ...
- Vue vue-resource三种请求数据方式pet,post,jsonp
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- UVa1601 - The Morning after Halloween [单向bfs]
解题思路: 1.注意到2*2方格中必有一个#,那么最多只有192条通道,可以将所有非‘#’的位置提取出来用邻接表的方式建图,通过bfs搜索目标位置. 2.将三个ghost的位置(a,b,c)作为状态量 ...
- javaScript通过URL获取参数
// 函数方法 function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=( ...