#运算符
#算数运算符
# + 加 1+1结果为2
# - 减 1-1结果为0
# * 乘 2*2结果为4
# / 除 2/2结果为1
# % 取模 2%2结果为0
# ** 幂 2**2结果为4
# // 整除 2//2结果为1
#赋值运算符
a=2
a+=1 #a=a+1
a-=1 #a=a-1
a*=1 #a=a*1
a**=3 #a=a*a*a
a/=2 #a=a/2
a//=3 #a=a//3 除不尽时 取整
a%=2 #取模 a=a%2
print(True-1) #结果为0,1-1=0 (True==1,False==0)
print(25**0.5) #开平方
#比较运算符
print(True==1) # 等于号 结果为True (True==1,False==0)
print("1">"0") # 大于号 结果为True 可比较字符串 根据哈希值比较
print(1!=2) # 不等于 结果为True 1不等于2
print(1<2) # 小于号 结果为True 1小于2
print(2>=2) # 大于等于 结果为True 2大于或等于2
print(2<=2) # 小于等于 结果为True 2小于或等于2
#位运算符
#位运算符是把数字转为二进制来进行计算
# 运算符 描述 实例
#a 为 60,b 为 13
#二进制格式为
# a = 0011 1100
# b = 0000 1101
# & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
# a&b = 0000 1100
# | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
# a|b = 0011 1101
# ^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
# a^b = 0011 0001
# ~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
# ~a = 1100 0011
# << 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
# >> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111
#逻辑运算符 and、 or、 not
# 以下假设变量 a 为 10, b为 20
# and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
# or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
# not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
a = 10
b = 20
print(a and b) #结果为20
print(a<b and a==10) #结果为True,两边同时为True则为True
print(1==1 or 1>2) #结果为True 一边为True在,则为True
print(not(1==1)) #1==1为True ,加上not则取非 True则变False,False变True
#三元运算
# 结果1 if 条件 else 结果2
print("1大于0") if 1>0 else print("1小于0")
#成员运算符
# Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
# in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
# not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
a = 1
b = 20
arr = [1, 2, 3, 4, 5 ];
if a in arr:
print("arr中存在a变量") #在arr中找到变量a的值则输出
else:
print("arr中不存在a变量") #在arr没有中找到变量a的值则输出
if b not in arr:
print("arr中不存在b变量") #在arr中没有找到变量b的值则输出
else:
print("arr中存在b变量")#在arr中找到变量b的值则输出
#身份运算符 身份运算符用于比较两个对象的存储单元
# is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
# is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
n = 20
m = 10
if ( n is m ): # 也可 if ( 20 is 20 ):
print ("n 和 m 有相同的标识") #如果n和m里的值相同
else:
print ("n 和 m 没有相同的标识") #如果n和m里的值不相同
if ( id(n) == id(m) ):
print ("n 和 m 有相同的标识") #如果n和m里的值相同
else:
print ("n 和 m 没有相同的标识") #如果n和m里的值不相同
m=20
if ( n is not m ):
print ("n 和 m 没有相同的标识") #如果n和m里的值不相同
else:
print ("n 和 m 有相同的标识") #如果n和m里的值相同
#条件控制
#行与缩进
#Python使用缩进来表示代码块,不需要{}
if True:
print("True")
else:
print("False")
# 结果为 True
# if True:
# print("True")
# else:
# print("False")
# print(9) #此行代码缩进不一致,运行会报错
#单独一句代码必须顶格编写 不然会报错
#也可编写为:
# if 条件:
# 结果
# elif 条件:
# 结果
# else:
# 结果
#控制台输入
#name= input("请输入你的姓名:")#控制台输入回车,会将输入的值赋给name
#注意:因为控制台输入的值都是string类型,如果要做int类型使用要转类型
#print(name)
#循环之while循环
i=1
while i<=9:
j=1
while j<=i:
print(j,"*",i,"=",(j*i)," ",end="") # j,"*",i,"=",(j*i)," " 为j*i=(j*i)【," "为在最后添加空格】 end=""为print不换行
j+=1
print()
i+=1
#菱形
#-----------------上半部分
y=1
while y<10: #打印9行
k=1
p=1
while k<10-y: #第一次八个空格
print(" ",end="")
k+=1
while p<y*2: #第一次一个*
print("*",end="")
p+=1
print("") #换行
y+=1
#-----------------下半部分
y = 9
while y<10 and y>0:
k=1
p=1
while k<=10-y: #第一次一个空格
print(" ",end="")
k+=1
y-=1
while p<=y*2-1:#1=8*2-1 第一次十五个*
print("*",end="")
p+=1
print("")
评论 (0)