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__()方法




























 

 

    

 

posted @ 2019-03-24 20:51  我和姚明一样高  阅读(530)  评论(0编辑  收藏  举报