热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python学习笔记之01基础总结

数据类型整数十六进制和八进制使用0开头,0x12f,010浮点数可以用科学记数法,如1.23x10^9可以写成12.3e8,
数据类型

 整数

  十六进制和八进制使用0开头,0x12f, 010

 浮点数

  可以用科学记数法,如1.23x10^9 可以写成 12.3e8 ,0.000012可以写成 1.2e-5

 空值

  用None表示 , 注意大小写。
 整数的运算永远是精确的,浮点数运算可能会有四舍五入的误差。
 

除法

 10/3 = 3.33333
 9/3 = 3.0
 

 地板除法

  10//3 = 3
  

 负数的地板除法

  负数的取整会取远离0的一方, 如 -10//3 = -4 , 因为-3.33333 取整后是 -4 。

取余

  10%3 = 1
  取余的算法为 x%y == x-((x//y) * y)
 

字符串

 '' 或者 ""

字符串转义

 使用 \ , 或者 r'' 、 r"" 将指定字符串默认不转义

字符串换行

 使用'''
 

字符编码

  •  获取字符的整数表示
      ord()
  •  把整数编码转换为对应字符
      chr()
  •   用十六进制的方式表示字符的整数编码
       '\十六进制编码'
  •  将字符从str转为bytes,这样每个字符仅占用一个字节,便于传输。
      b'ABC'
 
  •  将str编码为指定字符集的bytes
      'ABC'.encode('ascii')
  •  将bytes转为str
      b'ABC'.decode('ascii')
  
如果bytes中包含无法解码的字节,会报错,忽略小部分错误可以使用 b'ABC'.decode('ascii'.errors='ignore')
 
  •  获取长度、获取str包含多少字符、获取bytes包含多少字节
      len()
      len('ABC')
      len(b'ABC')

字符串格式化

 占位符

  •   整数      %d
  •   浮点数   %f
  •   字符串   %s
  •   十六进制     %x
 有几个占位符, 后面就跟几个变量、值
 
 format()函数
  {0},{1},{2}…… .format('a','b','c'……)

list

 形式为['a',2,True,None……]
  •  获取元素个数
      len(list_name)
      len(['a','b'……])
  •  通过索引获取元素
      list_name[0] #第一个元素索引位为0
      list_name[-1] #获取最后一个元素
  
索引超出范围时会报错,为避免报错,可以结合是同len() - 1 的方式来标记索引范围
  •  向list中追加元素
    •     追加到list末尾
           list_name.append()
    •     追加到指定位置 , 如超出元素个数,则插入到最末尾
           list_name.insert(x,'')
  •  向list中删除元素
      list_name.pop()
  •  删除指定索引位置的元素
      list_name.pop(x)
  •  替换某个元素,可以直接赋值给对应索引位
      list_name[2]='new_values'
  •  list可以作为元素被别的list包含
      取嵌套list的元素时,使用多层索引,如:
         lo = [1,2,3,['a','b','c'],4,5]
       如需取 a 值,  则使用 lo[3][0]
  •  如果一个list中没有元素,则长度为0
 

tuple

 形式为('a',2,True,None……) ,和list几乎一样
  •  tuple初始化后不可以修改,所以不支持append、insert、pop
  •  tuple可以定义为空
  •  如果tuple中只包含一个元素, 在定义的时候要在元素后加逗号,如:

       t0 = ('a',) ,以避免与数学运算的小括号混淆。

  •  虽然tuple不可以修改,但是当tuple包含list时,list的内容是可以修改的。因此,要保证tuple中一个内容都不变,就要保证每一个元素都不可改变。
 

条件判断

 形式为
  if x:
   active1
  elif y:
   active2
  else :
   active3
 判断行为用冒号,后续跟随的动作要缩进以代表判断后要执行的部分。

循环

 for...in...循环

  形式为
   for x in y:
    active
  

 while 循环

  形式为
   while 条件:
    active

 批量生成整数序列

  range(n) #从0开始生成到n-1的序列,如果n小于0则为空
 

 退出循环

  break

 跳过本次循环

  continue

 不要滥用break和continue ,尽可能少用,尽可能用循环逻辑去代替break和continue

dict

  1.  key-value存储,一个key只能对应一个value,后出现的key值会覆盖之前相同key的值.
  2.  key要用不可变对象,所以key不能用list。
  3.  dict是使用内存空间换取运行时间的方法,占用内存多于list,但是查找和插入速度极快。
 
 形式为 {'key1':value1, key2:value2 ,…… }
 调用时为 dict_name[keyx]
 key的存放顺序与录入顺序无关。
 
  •  调用时如果key不存在会报错,可以通过in来判断key是否存在
      'abc' in dict_name
  •  使用get()获取key对应的value,如果不存在,返回None
      dict_name.get(keyx)
  •   如果不存在,也可以返回定义值
       dict_name.get(keyx , VALUE)

 从dict中删除

      pop(keyx)

     如果不指定key ,会报错。

set

  • 和dict类似,也是一组key的集合,但是不包含value。
  • 由于key不能重复,所以set中没有重复值
  • set内的list中的元素顺序并不表示set中的顺序,因此,set中的元素也是无序的。


 创建set需要一个list。
  s0 = set( [1,2,3,4,5] )
 or
  list1 = [1,2,3,4,5]
  s1 = set( list1 )

  •  添加元素到set中

      s0.add()
  添加到set中的元素不支持可变对象,因此list不能作为元素添加到set中

  •  从set中删除元素

      s.remove()
  一次只能remove一个元素。
不可变对象 使用replace()函数对不可变对象值进行替换后,实际上原对象的值并没有变化,用print()函数对原对象进行输出既可以看出。
所以,对于不可变对象来说,调用对象的任意方法都不会改变对该对象自身的内容,仅仅会创建新的对象并返回,这样就保证了不可变对象本身是永远不可变的。

转:https://www.cnblogs.com/konggg/p/9055877.html



推荐阅读
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • 1关于字符串相邻的两个或多个字符串字面值(引号引起来的字符)将会自动连接到一起:str_catpython!str_cat输出:python!把很长 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文介绍了使用C++Builder实现获取USB优盘序列号的方法,包括相关的代码和说明。通过该方法,可以获取指定盘符的USB优盘序列号,并将其存放在缓冲中。该方法可以在Windows系统中有效地获取USB优盘序列号,并且适用于C++Builder开发环境。 ... [详细]
  • 本文介绍了如何使用go语言实现一个一对一的聊天服务器和客户端,包括服务器开启、等待客户端连接、关闭连接等操作。同时提供了一个相关的多人聊天的链接供参考。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • java io换行符_Java IO:为什么从stdin读取时,换行符的数字表示出现在控制台上?...
    只是为了更好地理解我在讲座中听到的内容(关于Java输入和输出流),我自己做了这个小程序:publicstaticvoidmain(String[]args)thro ... [详细]
author-avatar
厄祖EQ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有