Python学习笔记(2):变量及运算符

声明

  • 笔记中所用操作系统:Ubuntu(Linux)
  • 文章是本人学习笔记,供自己复习用,知识点并不全面,不适合初学者做为学习资料使用。
  • 新手学习,难免有疏漏或错误,感谢指正。

先插入几个琐碎知识点


当导入一个模块时,Python 解析器对模块位置的搜索顺序是:

1、当前目录
2、如果不在当前目录,搜索在 shell 变量 PYTHONPATH 下的每个目录。
3、如果以上路径都找不到,察看默认路径。UNIX下的默认路径一般为/usr/local/lib/python/。

模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。


Python语句中一般以新行作为语句的结束符,在一些程序中,对于较长的语句,用 \ 将其分为多行显示,例如:

total = item_one + \
        item_two + \
        item_three

但Python的编码规范中其实不建议这样,而是建议用()把多行内容括起来。
遇到了能看懂就行。
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。


print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号(,)

#不换行输出
print x,
print y,
#不换行输出
print x,y

这两行代码可以查看Python的保留字

Python 3.7.6 (default, Jan  8 2020, 19:59:22) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> 
  • 保留字就是在Python中有特殊含义和固定用法的词,用户自己编程的时候给变量、函数啥的起名时,不可以用这些保留字。
  • 非要用的话,会有“invalid syntax”的报错
  • 保留字区分大小写。比如True是保留字,true就不是。

Python中标识符

  • 由字母,数字,下划线组成,第一个字符不能是数字。
  • 不能使用Python的保留字
  • 严格区分大小写
  • 单下划线开头的标识符(如_width)表示不能直接访问的类属性,也不能通过“from xxx import *”导入
  • 双下划线开头的标识符(如__add)表示类的私有成员
  • 双下划线开头和结尾的是Python里专用的标识,比如__init__()表示构造函数

变量


Python 中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号 = 用来给变量赋值。

Python允许同时为多个变量赋值
也可以为多个对象指定多个变量

a = b = c = 1
a, b, c = 1, 2, "john"

Python中允许多个变量指向同一个值。

>>> no = number = 2048
>>> id(no)
140224977754512
>>> id(number)
140224977754512
>>> 

注:

  • Python的内置函数 id() 可以返回变量所指的内存地址

在 Python3.X 版本中 long(长整型) 类型被移除,使用 int 替代。


八进制整数用 0o 或 0O 开头(Python 2.x 中可以用 0 开头)
十六进制整数用 0x 或 0X 开头

  • 所以除 0 外的其他整数,不能以 0 开头

复数用 j 或 J 表示虚部
比如 1.23+4.5j


字符串用单引号’ '、双引号" “,或者三引号”"" “”"括起来。

  • 使用单引号或双引号,字符串内容必须在同一行
  • 使用三引号,字符串内容可以分开多行
  • 引号可以嵌套使用

列表用 [ ] 标识,是 python 最通用的复合数据类型

list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
 
print list               # 输出完整列表
print list[0]            # 输出列表的第一个元素
print list[1:3]          # 输出第二个至第三个元素 
print list[2:]           # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2       # 输出列表两次
print list + tinylist    # 打印组合的列表

元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表

tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
 
print tuple               # 输出完整元组
print tuple[0]            # 输出元组的第一个元素
print tuple[1:3]          # 输出第二个至第四个(不包含)的元素 
print tuple[2:]           # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2       # 输出元组两次
print tuple + tinytuple   # 打印组合的元组

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
 
tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
 
 
print dict['one']          # 输出键为'one' 的值
print dict[2]              # 输出键为 2 的值
print tinydict             # 输出完整的字典
print tinydict.keys()      # 输出所有键
print tinydict.values()    # 输出所有值

算数运算符

  • ** 意为求幂 ,例如 10**20 为10的20次方
  • // 意为取整除,返回商的整数部分(向下取整)
    比如 9//2 返回4,-9//2 返回-5
  • % 意为取模,返回除法的余数

PS:Python2.x 中,如果被除数和除数都是整数,相除结果只能得到整数。如果想得到小数结果,需要将其中一个数改成浮点数


位运算符(把数字化为二进制后再进行计算)

  • & 按位
  • | 按位
  • ^ 按位异或
  • ~ 按位取反
  • << 左移(使符号左边的运算数的各二进位全部左移若干位,符号右边的数字指定了移动的位数,高位丢弃,低位补0
  • >>右移(使符号左边的运算数的各二进位全部右移若干位,符号右边的数字指定了移动的位数,高位丢弃,低位补0

逻辑运算符

  • and:,在 x and y 中,如果 x 为 False,返回 False,否则返回 y 的值。
  • or:,在 x or y 中,如果 x 非 0,返回 x 的值,否则返回 y 的值
  • no:,在 not x 中,如果 x 为 True,返回 False ;如果 x 为 False,返回 True

成员运算符

  • in:如果在指定的序列中找到值,返回 True,否则返回 False。
  • not in:如果在指定的序列中没有找到值,返回 True,否则返回 False。
if ( a in list ):
   print "变量 a 在 list 中"

身份运算符

用于比较两个对象的存储单元

  • is:判断两个标识符是否引用自同一个对象,如果引用的是同一个对象,返回 True,否则返回 False。例如x is y, 类似 id(x) == id(y) ,
  • is not:判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象,返回 True,否则返回 False。例如x is not y , 类似 id(a) != id(b)

PS:

  • id() 函数用于获取对象内存地址
  • is 与 == 的区别在于, is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的是否相等

运算符优先级
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值