雷林鹏分享:学习python中的需要注意的几点事项

  本文章向大家介绍数据库的DML与DQL语句,主要包括数据库的DML与DQL语句使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

  1.python 中的 and 从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值;

  or 也是从左到有计算表达式,返回第一个为真的值;

  其中数字 0 是假,其他都是真;

  字符 "" 是假,其他都是真;

  元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

  元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

  2.python 中数字有以下的表示方式:

  2 进制是以 0b 开头的: 例如: 0b11 则表示十进制的 3

  8 进制是以 0o 开头的: 例如: 0o11 则表示十进制的 9

  16 进制是以 0x 开头的: 例如: 0x11 则表示十进制的 17

  但是在测试的时候又遇到了个问题,那就是输出来的被自动转化成了十进制:

  >>> a=0b111100

  >>> a

  60

  分别使用 bin,oct,hex 可输出数字的二进制,八进制,十六进制形式,例如:

  >>> a=0b111100

  >>> a=60

  >>> bin(a)

  '0b111100'

  >>> oct(a)

  '0o74'

  >>> hex(a)

  '0x3c'

  注意:

  反斜杠可以用来转义,使用r可以让反斜杠不发生转义。

  字符串可以用+运算符连接在一起,用*运算符重复。

  Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。

  Python中的字符串不能改变。

  3. is 与 == 区别:

  is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

  is not与!=区别于上述一致,一个比较的是引用对象,另一个比较的是两者的值。

  构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

  tup1 = () # 空元组

  tup2 = (20,) # 一个元素,需要在元素后添加逗号

  在 python 中,类型属于对象,变量是没有类型的:

  a=[1,2,3]

  a="Runoob"

  以上代码中,[1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是指向 List 类型对象,也可以是指向 String 类型对象。

  可更改(mutable)与不可更改(immutable)对象

  在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

  不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。

  可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

  python 函数的参数传递:

  不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

  可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

  python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。

  python 传不可变对象实例

  #!/usr/bin/python3

  #Python学习交流QQ群:579817333

  def ChangeInt( a ):

  a = 10

  b = 2

  ChangeInt(b)

  print( b ) # 结果是 2

  实例中有 int 对象 2,指向它的变量是 b,在传递给 ChangeInt 函数时,按传值的方式复制了变量 b,a 和 b 都指向了同一个 Int 对象,在 a=10 时,则新生成一个 int 值对象 10,并让 a 指向它。

  注意:

  List写在方括号之间,元素用逗号隔开。

  和字符串一样,list可以被索引和切片。

  List可以使用+操作符进行拼接。

  List中的元素是可以改变的。

  4.python 没有自增运算符a++,自增操作是如何实现的呢?

  回答中有人介绍了关于自增操作,python 不使用 ++ 的哲学逻辑:编译解析上的简洁与语言本身的简洁,就不具体翻译了。

  后面还有老外回答并附带了一个例子非常的精彩,指出了 python 与 c 语言概念上的一些差异,语言描述的可能未必准确,直接上例子:

  >>> b = 5

  >>> a = 5

  >>> id(a)

  >>> id(b)

  >>> a is b

  True

  python 中,变量是以内容为基准而不是像 c 中以变量名为基准,所以只要你的数字内容是5,不管你起什么名字,这个变量的 ID 是相同的,同时也就说明了 python 中一个变量可以以多个名称访问。

  这样的设计逻辑决定了 python 中数字类型的值是不可变的,因为如果如上例,a 和 b 都是 5,当你改变了 a 时,b 也会跟着变,这当然不是我们希望的。

  因此,正确的自增操作应该 a = a + 1 或者 a += 1,当此 a 自增后,通过 id() 观察可知,id 值变化了,即 a 已经是新值的名称。

  以上所说的在脚本式编程环境中没有问题。但是在交互式环境中,编译器会有一个小整数池的概念,会把(-5,256)间的数预先创建好,而当a和b超过这个范围的时候,两个变量就会指向不同的对象了,因此地址也会不一样,比如下例:

  >>> a=1000

  >>> b=1000

  >>> id(a);id(b)

  2236612366224

  2236617350384

  >>>

  5.在整数除法中,除法(/)总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //

  不同类型的数混合运算时会将整数转换为浮点数。

  python 不支持复数转换为整数或浮点数

  6.Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用。

  集合(set)是一个无序不重复元素的序列。

  基本功能是进行成员关系测试和删除重复元素。

  可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

  注意:

  字典是一种映射类型,它的元素是键值对。

  字典的关键字必须为不可变类型,且不能重复。

  创建空字典使用 { }。(编辑:雷林鹏 来源:网络|侵删)

posted @ 2020-03-25 16:20  雷林鹏  阅读(196)  评论(0编辑  收藏  举报