快速学习 Python基本知识(2)

实际上Python在语法上,和其他语言只是有少许区别.但是基本上都是差不多

一.变量与常量

  • 变量: 在程序运行过程中,值可以发生变换的量
  • 常量: 在程序运行过程中,值不可以发生变化的量

无论常量/变量都会存储在内存中,所以他们在创建时会在内存中给他们开辟一块内存空间.用于保存它的值.

1.1 变量

==Python中的变量不需要声明类型==
因为,Python的动态语言特性而来,变量可以直接使用,而不需要提前声明类型.

  • 用"="号,来给变量赋值.
  • 每个变量在使用前必须赋值,变量赋值以后才会被创建.
  • Python中,一切事物都是对象.变量引用的是对象或者说是对象在内存中的地址
  • 在Python中,变量本身没有数据类型的概念,通常所说的"变量类型"是变量所引用的对象的类型.或者说是变量的值的类型.
a = 1
a = "haha"
a = [1,2,3]
a = {"k1":"v1"}

print(a)
  • “=”号这个赋值运算符是从右往左的计算顺序
a = 1
b = 2
c = a + b
print(c)
  • 也可以同时为多个变量赋值,用逗号分隔,逐一对应
a = 1
b = 2
c = a + b
print(c)

a,b,c = 1,2,3
print(a,b,c)

  • Python一切都是假象,变量是对象的引用.
a = 'cc'
b = a
a = 'yiyi'
print(b)
print(a)
  • Python一切都是假象,变量是对象的引用
    • 执行a = 'cc',解释器创建字符串'CC'对象和变量a,并且把a指向'cc'对象.
    • 执行 b = a ,解释器创建变量b,并且执行指向变量a的指向字符串'cc'对象.
    • 执行 a ='yiyi',解释器创建字符串'yiyi'对象,并把a改为指向'yiyi'对象,与b无关.

这里还是要推荐下小编的Python学习群: 823137423,不管你是小白还是大牛,小编我都欢迎
,不定期分享干货,包括小编自己整理的一份2019年最新的Python资料和0基础入门教程视频,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。

1.2 常量

在Python中,通常用全部大写的变量名来表示常量:
PI = 3.14159265359

在事实上,从Python语法的角度上,PI其实仍然是一个变量.因为Python根本没有任何机制来保护PI不受改变.你可以通过赋值去修改,并且不会发生人任何错误.所以,用全部大写的变量来表示变量只是一种习惯上的用法.

常量通常放置代码的顶部,保证代码全局可以使用.

二.运算符

Python支持如下的运算符:

  • 算法运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 三目运算符

2.1 算术运算符

假设变量a = 30,b = 40;

#算法运算符
a = 10
b = 20
print(a,b)

#"+"加法运算符,表示2个数累加
a = a + b
print(a)

#"-"减法运算符,表示2个数相减
a = a - b
print(a)

#"*"乘法运算符,表示2个数相乘或者一个被重复若干次的字符串
a = a*b
c = 'cc' * 3
print(a)
print(c)

#"/"除法运算符,表示x/y
a = a/b
print(a)

#"%"模运算符,表示返回除法的余数
a = a%b
print()

#"**"幂运算符,表示返回x的y次幂
a = a**b
print(a)

#"//"取整除运算符,表示返回商的整数部分(只区整数部分,余数被抛弃)
a = a//b
print(a)

比如,我们获取商和余数的方法:

  • 第一种方法,分别对a,b做地板除法,和余数运算
 a = 10//3
 b = 10%3
 #结果: 3,1
  • 第二种方法,使用divmod(除数,被除数)函数
    divmod(10,3)
    #结果:(3,1)
  • ==Python精度问题==
    • 注意其中的提供的数字只是用字符串的形式传递给Decimal.
from decimal import Decimal
a = Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
print(a)
print(Decimal('0.1')/Decimal('0.3'))

#定义全局精度
from decimal import getcontext
getcontext().prec = 4;
print(Decimal('0.1')/Decimal('0.3'))

2.2 比较运算符

#比较运算符
#"==",比较对象是否相等
a = a==b
print(a)

#"!="不等于,比较两个对象是否不相等
a = a != b
print(a)

#">"大于,比较对象a大于对象b
a = a > b
print(a)

#"<"小于,比较对象a小于对象b
a = a < b
print(a)

#">=",大于等于,比较对象a是否大于等于对象b
a = a>=b
print(a)

#"<=",小于等于,比较对象a是否小于等于对象b
a = a<=b
print(a)

#连续比较
a = 1
b = 2
c = 3

a = a>b>c
#等价于 (a>b)and(b>c)
print("连续比较:",a)

2.3 赋值运算符

#赋值运算符
#"="赋值运算符号,将20赋值给变量a
a = 20
b = 30

#"+=",加法赋值运算符,等价于a = a+b
a += b
print(a)

#"-=",减法赋值运算符,等价于a = a-b
a -= b
print(a)

#"*=",乘法赋值运算符,等价于a = a*b
a *= b
print(a)

#"/=",除法赋值运算符,等价于a = a/b
a /= b
print(a)

#"%=",取模赋值运算符,等价于a = a % b
a %= b
print(a)

#"**=",幂赋值运算符,等价于a = a**b
a **= b
print(a)

#"//=",取整除赋值运算符,等价于a = a//b
a //= b
print("整除:",a)

2.4 位运算符

位运算符是基于二进制来进行计算.

扫描二维码关注公众号,回复: 5628276 查看本文章

2.5 逻辑运算符

在Python 中支持逻辑运算符,但是没有符号"&&"和"||".是使用英语单词"and" 和"not"和"or"

#逻辑运算符
a = 10
b = 20

#"and",如果a为false,则返回a and b返回false 否则返回b的计算值
a = a and b
print(a)

#"or",如果a为true,则返回a的值,否则返回y的计算值
a = a or b
print(a)

#"not",非
a = not a
print(a)

2.6 成员运算符

"in"和"not in"是Python特有的运算符,在C/C++语言中都是没有的.这个用于判断对象是否是某个集合中的元素之一.计算速度是比较快的.返回的结果是以bool值类型呈现.TrueFalse.

#成员运算符
#"in",如果在序列中,能找到所要寻找的值则返回True,否则返回Flase
#"not in" 如果序列中,不能找到所要寻找的值则返回True,否则返回Flase

#遍历数组,找到元素
list1 = [1,2,3,4,5,6,7,8,9]
a = 6

for i in list1:
    if i == a:
        print("Success Find Value")
        break


#利用"in"成员运算符,找到元素
list2 = [1,2,3,4,5,6,7,8,9]
a = 8
if a in list2:
    print("Success Find Value")
else:
    print("Failed Find Value")

#利用"not in"成员运算符,找到元素
if a not in list2:
    print("Failed Find Value")
else:
    print("Success Find Value")

2.7 身份运算符

身份运算符在C/C++语言也是没有的.但是却是Python语言中一个非常好用的运算符

  • is,判断2个变量是不是引用同一个对象
  • is not,判断2个变量是不是引用不同的对象

注意:
很多时候,可以能将is符号和"=="符号混淆.但是请大家注意,"=="是判断变量引用的对象的值是否相等,而is则判断的是两个变量是否引用同一个对象.

#身份运算符
#"is",表示2个变量引用是不是同一个对象
#"==",表示2个变量的值是否相同

list3 = [1,2,3,4,5,6]
list4 = list3
flag = list3 is list4
print("list3 is list4 ",flag)

flag = list3 == list4
print("list3 == list4",flag)

list4 = [1,2,3,4,5,6]
flag = list3 is list4
print("list3 is list4 ",flag)

flag = list3 == list4
print("list3 == list4 ",flag)

list4 = list3[:]
print(list4)
flag = list3 is list4
print("list3 is list4",flag)

flag = list3 == list4
print("list3 == list4",flag)

  • 推荐使用常用内置函数id(),这个函数的功能是查看某个变量或者对象的内存地址.如果两个对象地址相同则是同一个对象.
#id()函数,获取对象地址
if id(list3) == id(list4):
    print("list3 is list4")
else:
    print("list3 is not list4")

2.8 三目运算符

在C语言中,也有三目运算符.
判断条件?为真结果:为假结果

但是Python的格式:为真结果 if 判断条件 else 为假结果

如果有过相关的编程经验,可能会不太习惯这个语法.但尽量抱着空瓶的心理去学习!

#三目运算符
a = 1
b = 2

c = True if a<b else False
print(c)

三.总结运算符的优先级

以下按照高低顺序排序,同级别则按从左至右顺序计算

  • 指数(**)
  • 位运算(~,+,-)
  • 乘,除,取模,取整除 (*,/,%,//)
  • 加减法 (+,-)
  • 左移,右移(<<,>>)
  • 位运算(&)
  • 为运算符(^,|)
  • 比较运算符<=,<,>,>=
  • 等于运算符<>,==,!=
  • 赋值运算符
  • 身份运算符
  • 成员运算符
  • 逻辑运算符

连载上篇:https://blog.csdn.net/qq_42489308/article/details/88750637

猜你喜欢

转载自blog.csdn.net/qq_42489308/article/details/88750712