执行python方式
交互器
缺点 程序不能永久保存,主要用于简单的语法测试
文件执行
IDE
integrated development environment
VIM 经典的linux下的文本编辑器
emacs linux 文本编辑器,比VIM更容易使用
eclipse java ide,支持 python,c ,c++
visual studio 微软开发的ide,python,c++,java,c#
notepad++
sublime python开发的
pycharm 是主要用于python开发的ide
变量
标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’)
标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。
有效 标识符名称的例子有i、__my_name、name_23和a1b2_c3。
无效 标识符名称的例子有2things、this is spaced out和my-name。
标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。
常量:数值不变的
变量:数值会变动的量
name = "Alex li"
name2 = name #name2和name没关系,指向内存中的Alex li
print("My name is",name)
print("My name is",name,name2)
name = "paoche ge"
print(name,name2)
name Alex li name2 paoche ge
在python中没有常量的,所有的数值都可以改变,但是他依然有个常量的概念,但是是人为的你不去改变他,定义一个常量应该用大写的形式。
AGE = 10 这个就是常量,他是大写的!是约定俗成的。但是他是可以改的!
name = 'Tim Luo' 这个是变量
##这里需要注意下,设置变量的时候不能设置python自带的内置方法比如type
以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield' ]
变量名一定是带有描述性的
变量名是区分大小写的
字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),所以如果不指定编码类型,如果有中文就会报错。
#! /usr/bin/env python 声明从环境变量内找寻python # -*- coding:utf-8 -*- 声明字符编码使用utf-8
注释
单行注释 #
多行注释""" """
打印多行
msg ="""
name2=name
print("My name is",name,name2)
name="paoche ge"
"""
print(msg)
用户输入
name = input("name:")
print (name)
由于input所接受的所有数据都是字符串,即便你输入的是数字,但依然会被当成字符串来处理
death_age = 80
name = input ("your name:")
age = input("your age:")
print(type(age)) #打印age的数据类型
#int = integer 整数 把字符串转成int
#str = string 字符串 把数据转成字符串用str
print ("your name:",name)
#print("you can still live for",death_age - int(age),"years...")
print ("you can still live for"+str(death_age - int(age))+"years...") #字符串拼接
格式化输出
格式化输出的几种方式:
1.字符串拼接
name = input ("name:")
age = input ("age:")
work = input ("work:")
salary = input ("salary:")
info = """
-----------info of """+ name + """-----------
name:""" + name + """
age: """ + age + """
work: """ + work + """
salary: """ + salary + """
"""
print (info)
#字符串拼接,在定义变量时,比其他方法要在内存中多去划分一部分容量,一般不建议使用
2.使用%占位符
占位符
%s s=string 字符串
%d d=digit 整数
%f f=float 浮点,约等于小数 默认会加上小数点后六位数的精度
name = input ("name:")
age = input ("age:")
work = input ("work:")
salary = input ("salary:")
info = """
-----------info of %s ----------- #### s代表string 字符串
name:%s
age: %s
work: %s
salary: %s
""" % (name,name,age,work,salary)
print (info)if salary.isdigit(): #由于salary需要用数字表示,如果强制把input赋值的结果转成int,当输入数字以外的就会报错。这里添加判断,salary是否长得像数字,digit是数字的意思 salary=int(salary) #当用户输入数字,就把salary的数据类型转换成int,当输入的不是数字,提示用户输入数字。else: print("must input digit") #等同于 exit("must input digit") 输入错误退出程序 exit()
name = input ("name:")
age = input ("age:")
work = input ("work:")
salary = int(input ("salary:"))
info = """
-----------info of %s ----------- #### s代表string 字符串
name:%s
age: %s
work: %s
salary: %d #必须输入数字
""" % (name,name,age,work,salary)
print (info)
name = input ("name:")
age = input ("age:")
work = input ("work:")
salary = int(input ("salary:"))
info = """
-----------info of %s -----------
name:%s
age: %s
work: %s
salary: %f
""" % (name,name,age,work,salary)
print (info)
#输出
name:air
age:22
work:it
salary:3000
-----------info of air -----------
name:air
age: 22
work: it
salary: 3000.000000
3.使用%占位符,并且强制转换数据类型
name = input ("name:") #python 2.x raw_input("name:") #intput 2.x int
age = int(input ("age:")) #int=integer 整型
print (type(age) ) #打印一个变量的数据类型
work = input ("work:")
salary = input ("salary:")
info = '''
-----------info of %s ----------- # s代表string 字符串
name:%s
age: %d #d代表数字,强制使用数字,让程序检测数据类型
work: %s
salary: %s
''' %(name,name,age,work,salary)
print (info)
4.替换
name = input ("name:")
age = input ("age:")
work = input ("work:" )
salary = input ("salary:")
info ="""
---------info of {_name}-----------
name:{_name}
age:{_age}
work:{_work}
salary:{_salary}
""".format(_name=name,_age=age,_work=work,_salary=salary)
print(info)
5.替换
name = input ("name:")
age = input ("age:")
work = input ("work:" )
salary = input ("salary:")
info ="""
---------info of {0}-----------
name:{0}
age:{1}
work:{2}
salary:{3}
""".format(name,age,work,salary)
print(info)
流程控制
if elif else
输入用户名密码
_username = "lw"
_password = "123"
username = input("username:")
password = input("password:")
if _username == username and _password == password: #流程控制 逻辑判断
print ("welcom user {name} login... ".format(name=username))
else:
print ("invalid username or password")
猜数字
age_of_oldboy = 22
gusess_age = int(input("gusess age:")) #input 默认数据类型为字符串
if gusess_age == age_of_oldboy:
print("your right!")
elif gusess_age > age_of_oldboy:
print("thinger smaller")
else:
print("thinker bigger")
while
while true
从0开始每循环一次加一,加到1000时停止
count = 0
while True:
print("count:",count)
count = count + 1
if count == 1000:
break #break 跳出本次循环
#错误示例
count = "0" #不是相加,而是0111111111不断加1,字符串类型无法做函数运算
while True:
print("count:",count)
count = count + "1"
猜年龄
age_of_oldboy = 22 #22不加""为变量,加上为字符串
count = 0 #添加计数器
while True:
if count == 3:
break
gusess_age = int(input("gusess age:"))
if gusess_age == age_of_oldboy:
print("your right!")
break
elif gusess_age > age_of_oldboy:
print("thinger smaller")
else:
print("thinker bigger")
count += 1 #循环记数
while + 判断条件
age_of_oldboy = 22 #22不加""为变量,加上为字符串
count = 0 #添加计数器
while count < 3:
gusess_age = int(input("gusess age:"))
if gusess_age == age_of_oldboy:
print("your right!")
break
elif gusess_age > age_of_oldboy:
print("thinger smaller")
else:
print("thinker bigger")
count += 1 #循环记数
if count == 3:
print("you have tried too many times...fuck off")
上面示例另一种表达
age_of_oldboy = 22 #22不加""为变量,加上为字符串
count = 0 #添加计数器
while count <3:
gusess_age = int(input("gusess age:"))
if gusess_age == age_of_oldboy:
print("your right!")
break
elif gusess_age > age_of_oldboy:
print("thinger smaller")
else:
print("thinker bigger")
count += 1 #循环记数
else:
print("you have tried too many times...fuck off")
添加条件,在完成3次又没猜对后,对用户询问提示,用户若输入n,重新开始循环
age_of_oldboy = 22 #22不加""为变量,加上为字符串
count = 0 #添加计数器
while count <3:
gusess_age = int(input("gusess age:"))
if gusess_age == age_of_oldboy:
print("your right!")
break
elif gusess_age > age_of_oldboy:
print("thinger smaller")
else:
print("thinker bigger")
count += 1 #循环记数
if count == 3:
countine_confirm = input("do you want to keep guessing...?")
if countine_confirm !="n":
count = 0
错误示例
#错误语句
lucky_num = 19
input_num = -1
guess_count = 0
while lucky_num != input_num and guess_count <3:
print("guess count:",guess_count)
input_num = int(input("input the guess num:"))
if input_num > lucky_num:
print("too bigger")
elif input_num < lucky_num:
print("too smaller")
else:
print("bingo!")
guess_count+=1
else:
print("trying too many times..")
#当循环执行到这一步,只要没有满足lucky_num != input_num and guess_count <3:
#else语句都会被执行,所以在while 完成3次循环时,都会在后面加上trying too many times..
标示位
age = 50
user_input_age = 0
flag = True
while flag:
user_input_age = int(input("age is"))
if user_input_age == age:
print("yes")
flag = False
elif user_input_age > age:
print("bigger")
else:
print ("smaller")
print("end")
while
else
else表示当while循环语句正常结束了之后就执行else之后的语句
num=1
while num<=10:
num += 1
if num ==3:
coninue
print(num) #由于缩进原则,print不受if语句影响
else:
print("This is else statement")
#输出
2
4
5
6
7
8
9
10
11
This is else statement
若将coninue换成break
num=1
while num<=10:
num += 1
if num ==5:
break
print(num)
else:
print("This is else statement")
#输出
2
3
4
#由于break会结束while循环,所以else后面的语句并未执行
循环嵌套
示例:
print("#",end="")
print("#",end="")
print("#",end="")
print("#",end="")
使用循环表示
num = 4
while num > 0:
print("#",end="")
num -= 1输出4行4列num2 = 4while num2 > 0: num = 4 while num > 0: print("#",end="") num -= 1 print() num2 -= 1
问题示例:
num1 = 0
num2 = 0
while num1<=5:
print(num1,end="_")
while num2<=7:
print(num2,end="-")
num2 += 1
num1 += 1
print() #换行,等价于print(end"\n")
#输出
0_0-1-2-3-4-5-6-7-
1_
2_
3_
4_
5_
#由于第二个while循环,当num2递加到8时,在进行下一次第一个while循环时,因为他不<=7所以就不会去执行第二个while循环语句了。
正确示例:
改进
num1 = 0
num2 = 0
while num1<=5:
num2 = 0
print(num1,end="_")
while num2<=7:
print(num2,end="-")
num2 += 1
num1 += 1
print()
#输出
0_0-1-2-3-4-5-6-7-
1_0-1-2-3-4-5-6-7-
2_0-1-2-3-4-5-6-7-
3_0-1-2-3-4-5-6-7-
4_0-1-2-3-4-5-6-7-
5_0-1-2-3-4-5-6-7-
循环嵌套练习:
1.使用#好输出一个长方形,用户可以指定宽和高,如果长为3,高为4,则输出一个横着有3个#号,竖着有4个#号的长方形。
第一种方式:height = int(input("height:"))
width = int(input("width:"))
num_height = 1
while num_height <= height:
num_width = 1
while num_width <= width:
print("#",end="")
num_width += 1
print()
num_height += 1
#输出:
height:5
width:5
#####
#####
#####
#####
#####第二种方式:#高度height就等于多少行
height = int(input("height:"))width = int(input("width:"))w = width while height > 0: w = width #由于每次完成内部的while循环后,width的值都会变为0,需要在给他重新赋值 while w > 0: print("#",end="") w -= 1 print() height -= 1#输出
#####
#####
#####
#####
#####
2.如何输出一个如下的直角三角形,用户指定输出行数;(如果上下反转,又如何实现?)
*
**
***
****
3.输出九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
.................................
b=1
while b<=9: #最外层的while语句控制列即换行
a = 1
while a<=b: #内层的while语句控制每行的输出,因为输出的最终结果行等于列,所以在打印每行的时候,添加判断a<=b
print(a,"*",b,"=",a*b,end="\t") #end="\t" \t代表制表符,使输出格式对其
a += 1
print()
b += 1
#a代表了有多少列,b代表了有多少行行,在执行一个全部循环,b的值才会加1,用b>=a,控制a在每行的输出多少列
#最终输出结果
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
b=9
while b>0:
a = 1
t = b
while t>0:
print(a,"*",b,"=",a*b,end="\t")
a+=1
t-=1
print()
b -= 1#输出
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 2 = 2 2 * 2 = 4
1 * 1 = 1
b=9while b>0: a = 1 while b>=a: print(a,"*",b,"=",a*b,end="\t") a+=1 print() b -= 1
#输出 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 2 = 2 2 * 2 = 4 1 * 1 = 1
for
#b是临时变量,range(10)相当于0,1,2,3,4,5,6,7,8,9
#for b in就是每循环一次,从range(10)里依次取值给B
for b in range(10):
print("loop",b)
#输出结果
#loop 0
#loop 1
#loop 2
#loop 3
#loop 4
#loop 5
#loop 6
#loop 7
#loop 8
#loop 9
#loop 10
for b in range(0,10,2): #从0-10中取值,2代表间距
print("loop",b)
#输出
#loop 0
#loop 2
#loop 4
#loop 6
#loop 8
#loop 10
猜年龄
age_of_oldboy = 22 #22不加""为变量,加上为字符串
#添加计数器
for i in range(3):
gusess_age = int(input("gusess age:"))
if gusess_age == age_of_oldboy:
print("your right!")
break
elif gusess_age > age_of_oldboy:
print("thinger smaller")
else:
print("thinker bigger")
else:
print("you have tried too many times...fuck off")
continue 重新执行本次循环
只执行continue之前的语句,之后的语句都不执行
for j in range(5):
for i in range(10):
if i <5:
continue
if j>3:
break
print(i)
print输出换行的问题
print("111",end="") #end="",双引号内的表示输出的行末,默认为\n换行符
print("111",end="")
print("111",end="")
#输出
111111111
对于python2.X,要消除print的自动换行,只需在print尾部加上一个逗号”,”,但是这一做法在python3.X就不适用了,这是为什么呢?我们可以在交互式的环境下输入help(print),查询print的原理和使用方法。
Help on built-in function print in module builtins:
print(…)
print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
appledeMacBook-Pro-2:Desktop apple$ python3
Python 3.5.0 (v3.5.0:374f501f4567, Sep 12 2015, 11:00:19)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
(END)
注意看这一句:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
这一句说明在python3中print是一个函数,对于函数,其形参中有默认参数和关键参数。我们发现,在结尾处出现了end = ‘\n’,说明print是以\n结束的,end是默认参数。只要我们在print中将默认参数的值改为空或者空格,就能实现不换行
缩进
缩进级别必须保持一致
if gusess_age == age_of_oldboy:
print("your right!") #print前用tab键缩进
print("your right!") #print前用4个空格缩进
#报错 因为TAB和空格在liunx里会呈现出不同的结果。
#官方建议使用4个空格用于缩进
算数运算符
| 操作符 | 描述符 | 例子 |
| + | 加法,对操作符的两侧增加值 | a+b=30 |
| - | 减法,减去从左侧操作数到右侧操作数 | a-b=-10 |
| * | 乘法,相乘的运算两侧的值 | a*b=200 |
| / | 除,由右侧操作数除以左侧操作数 | a/b=2 |
| % | 余数,由右侧操作数除以左侧操作数,无法除尽所得的数 | a%b=0 |
| ** | 指数,执行对操作指数(幂)的计算 | a**b=10幂20 |
| // | 地板除(整除),操作数的除法,其中结果是将小数点后的位数被忽略的商 | 9//2=4 |
运算的优先级
使用()而在数学运算中使用{[()]}来分层区分优先级。
#在CMD命令行下输入a=3 b=5 a>b #输出 #False
比较操作符
| 运算符 | 描述 | 示例 |
| == | 检查两个操作数的值是否相等,如果是则条件变为真。 | (a==b)为true |
| != | 检查连个操作数的值是否相等,如果值不相等,则条件变为真。 |
(a!=b)为true |
| <> | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | (a<>b)为true,这个类似于!=运算符 |
| > | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | (a > b) 为 true. |
| < | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | (a < b) 为 true. |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | (a >= b) 为 true. |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | (a <= b) 为 true. |
#在CMD命令行下输入 a=3 b=5 b>=a #输出 #True
取三个数中的最大值
num1 = input("num1:")
num2 = input("num2:")
num3 = input("num3:")
if num1>num2:
if num1>num3:
print("num1",num1)
else:
print("num3",num3)
else:
if num2>num3:
print("num2",num2)
else:
print("num3",num3)
赋值运算符
| 运算符 | 描述 | 示例 |
| = | 简单的赋值运算符,赋值从右侧操作数给左侧操作数 | c = a + b将指定的值 a + b 到 c |
| += | 加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 | c += a 相当于 c = c + a |
| -= | 减AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 | c -= a 相当于 c = c - a |
| *= | 乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 | c *= a 相当于 c = c * a |
| /= | 除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 | c /= a 相当于= c / a |
| %= | 量AND赋值操作符,它需要使用两个操作数的模量和分配结果左操作数 | c %= a is equivalent to c = c % a |
| **= | 指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数 | c **= a 相当于 c = c ** a |
| //= | 地板除,并分配一个值,执行地板除对操作和赋值给左操作数 | c //= a 相当于 c = c // a |
>>>num=1 >>>num 1 >>>num=2 >>>num+=1 >>>num 3 >>>num=3 >>>num-=1 >>>num 2 >>>num=2 >>>num*=2 >>>num 4 >>>num=6 >>>num/=2 >>>num 3 >>>num=7 >>>num%=3 >>>num 1 >>>num=3 >>>num**=3 >>>num 27 >>>num=9 >>>num//=2 >>>num 4
逻辑运算符
| 运算符 | 描述 | 示例 |
| and | 所谓逻辑与运算符。如果两个操作数都是真的,那么则条件成立。并且的意思 | (a and b)为true |
| or | 所谓逻辑or运算符。如果有两个操作数都是非零然后再条件变为真。或的意思 | (a or b) 为 true. |
| not | 所谓逻辑非运算符。用于反转操作数的逻辑状态。如果一个条件为真,则逻辑非运算符将返回false。 | not(a and b) 为 false. |
例子: and运算,都为真时为真 >>> 9 > 8 and 9 < 10 True >>> 9 > 8 and 9 > 10 False or运算,有一个为真的时候即可为真 >>> 9 > 8 or 9 > 10 True >>> 9 < 8 or 9 > 10 False >>> not运算,假为真真为假 >>> not 6.2 <= 6 True >>> not 6.2 >= 6 False >>>
>>>5<3 and 4<3 or 6>5 #按照从左至右的顺序 True >>>5>3 or (4>3 and 6<5)#添加括号来改变执行运算的优先级 True
短路原则
对于and
如果前面的第一个条件为假,那么这个and前后两个条件组成的表达式的计算结果就一定为假,第二个条件就不会被计算
对于or
如果前面的第一个条件为真,那么这个or前后两个条件组成的表达式的计算结果就一定为真,第二个条件就不会被计算
>>>not not True or False and not True #or右边的条件不予判断 True >>>True or True and False #or右边的条件不予判断 True
来源:https://www.cnblogs.com/air3162/p/7584430.html