分隔符_的使用:
# _的使用
# _不能放在数值的两端
# _不能放在小数点的前后
# _不能连续出现多次
# 总结:下划线只能出现在两个数字的中间
# x = 1234_5678_
# x = _1234_5678
# x = 1234_.5678
# x = 1234._5678
# x = 1234__5678
证明and的优先级高于or:
# x or y and w
# 优先级影响的是结合性,and 和 or会有短路
# 如果and的优先级高 x or (y and w)
# 如果or的优先级高 (x or y) and w
print(1 or (1 and 0))
print((1 or 1) and 0)
print(1 or 1 and 0)
and 与 or 短路:
# 运行没有错误,短路发生
# print(5 / 0)
# 0 or (5 / 0)
0 and (5 / 0)
1 or (5 / 0)
输入两个数,第一个数指定数值(十进制),第二个指定进制,输出十进制的结果:
# int函数的使用
v = input("请输入数值:")
base = input("请输入进制:")
print(int(v,int(base)))
给出将-27<<3与-27>>3的过程:
# -27 2^4+2^3+2^1+2^0
# 原码: 1 11011
# 补码: 1 00101
# <<3: 1 101000
# 原码: 1 010111+1 011000
# >>3(补符号位): 1 11100
# 原码: 1 00010
使用Decimal类计算,输入两个浮点类型,再输入需要保留的有效数字,计算结果:
import decimal
v1 = float(input("请输入第一个数值:"))
v2 = float(input("请输入第二个数值:"))
prec = int(input("请输入计算的精度:"))
context = decimal.getcontext()
# context.prec设置的是计算的精度,不是存储的精度
context.prec = prec
print(decimal.Decimal(v1)+decimal.Decimal(v2))
print(decimal.Decimal(v1))
输入一个三位正整数,输出该数值的百位,十位与个位:
v = int(input("请输入一个三位正整数:"))
# 提取百位
print(v // 100)
# 提取十位
print(v%100//10)
print(v //10 % 10)
# 提取个位
print(v % 100 % 10)
# 移位 7 2^2+2^1+2^0
# n* 7 = n*(4+2+1)
# = n * 4 + n * 2 + n * 1
# = n * 2^2 + n * 2^1 + n * 2^0 左移相当于乘
# = n << 2 + n << 1 + n<<0 移位运算符的优先级低
# (n << 2) + (n <<1) +(n << 0)
v = int(input("请输入一个数值:"))
print((v << 2)+(v << 1) +(v << 0))
输入一个数,输出该数*7的结果。(不允许使用*,也不允许连续累加):