第1001次python入门——Day02

整数的表示方式

# 整型就是整数。但计算机只能保存二进制 0 和 1,
# 为了方便数据表示,同时计算机也支持8 和16 进制

a = 98  # 默认10进制

b = 0b101101101  #以0b开头的数字是二进制
print(b)

c = 0o34  # 以0o开头的数字是八进制
print(c)

d = 0x23A  # 以0x开头的数字是十六进制
print(d)

进制转换

# 十进制23
# 二进制 10111
# 八进制 010 111 = 27
# 十六进制 0001 0111 = 17


# 十进制转二进制
a = 23
print(bin(a))  # 0b10111

c = 0b1010
print(c)

使用代码进行进制转换

a = 12
print(bin(a))  # 0b1100 使用bin()转换为二进制
print(oct(a))  # 0o14 使用oct()转换为八进制
print(hex(a))  # 0xc 使用hex()转换为十六进制

数据类型的转换

# 不同数据类型运算时的运算规则是不同的,所以要进行数据类型转换

# 类型转换 将一个类型的数据,转换成其它类型的数据
# 在python里,字符串数字做加法,直接报错
# 可以用age内置类,进行转换
age = input('年龄:')
print(type(age))

new_age = int(age)
print(type(new_age))

转换成为整数

# 使用 int 内置类可以使数据转换成为整数

a = '31'
b = int(a)

print(a)  # 31
print(b)  # 31

# print(a + 1)  # 报错
print(b + 1)  # 32

# 如果字符串不是一个合法的数字,会直接报错
# x = 'hello'
# y = int(x)
# print(y)

x = '1a2c'
y = int(x, 16)  # 把字符串的当作16进制转换为10进制整数
print(y)
print(bin(y))

m = '12'
n = int(m, 8)  # 把字符串的当作8进制转换为10进制整数
print(n)

转换成为浮点数

a = '12.34'
# 使用float内置函数可以将其它类型数据转换称为float浮点数
b = float(a)
print(b + 1)

# 如果字符串不能转换成为有效的浮点数,会报错
# c = float('hello')
# print(c)

c = 101
print(float(c))  # 101.0

转换成为字符串

# 使用str内置类可以将其它类型的数据转换成为字符串
a = 34
b = str(a)
print(a)
print(b)

print(type(a))
print(type(b))

转换成为布尔值

# 使用str内置类可以将其它类型的数据转换成为字符串
a = 34
b = str(a)
print(a)
print(b)

print(type(a))
print(type(b))

算数运算符

# Python里支持很多算数运算符
# + 加 - 减 * 乘 / 除 ** 幂运算 // 整除 % 取余

print(1 + 1)  # 2
print(4 - 2)  # 2
print(3 * 2)  # 6

# 在python3里,两个整数相除,得到的结果是浮点数
print(6 / 2)  # 3.0
print(9 / 2)  # 4.5

print(3 ** 3)  # 27
print(81 ** (1/2))  # 9.0

print(10 / 3)  # 3.333333333
print(10 // 3)  # 3 整除,只取整数部分
print(10 % 3)  # 1 取余,只取余数部分
print(1928 % 8797)  # 1928

算数运算符在字符串里的使用

# 字符串里支持的算数运算符比较有限 ,加法和乘法
# 加法运算符,只能用于两个字符串类型的数据,用来拼接两个字符串
print('hello' + 'world')  # 将多个字符串拼接成为一个字符串

# print('18' + 1)  # 在python里, 数字和字符串之间, 不能做加法运算

# 乘法运算符:可以用于数字和字符串之间,用来将一个字符串重复多次
print('hello' * 2)  # hellohello

赋值运算符

# = 等号在计算机编程里,我们称之为赋值运算符,和数学里的等号有一定的区别
# 计算机的编程里,等号(赋值运算符)作用是将等号右边的值赋值给等号的左边
# 等号的左边一定不能是常量或者表达式
a = 4

m = 3 + 3

x = 1
x += 2
print(x)  # 3

# += -= *= /= **= %= //=

赋值运算符的特殊场景

# 等号连接的变量可以传递赋值
a = b = c = d = 'hello'
print(a, b, c, d)

# x = 'yes' = y = z

m, n = 3, 5  # 拆包
print(m, n)

x = 'hello', 'good', 'yes'
print(x)  #  ('hello', 'good', 'yes')


# 拆包时, 变量的个数和值的个数不一致,会报错
# y, z = 1, 2, 3, 4, 5
# print(y, z)   # ValueError: too many values to unpack (expected 2)

# o, p, q = 4, 2
# print(o, p, q)

o, *p, q = 1, 2, 3, 4, 5, 6
print(o, p, q)  # 1 [2, 3, 4, 5] 6

比较运算符

# 大于> 小于< 大于等于>= 小于等于<= 不等于!= / <> 等等与==
print(2 > 1)
print(2 < 4)
print(4 >= 3)
print(4 <= 9)
print(5 != 6)
print('hello' == 'hello')

# 比较运算符在字符串里的使用
# 字符串之间使用比较运算符,会根据各个字符的编码值逐一进行比较
# ASCII 码表
print('a' > 'b')  # False  97 > 98
print('abc' > 'b')  # False

# 数字和字符串之间,做 == 运算的结果是False,做!=结果是True,比支持其它的比较运算
# print('a' > 90)  出错
print('a' == 97)  # False
print('a' != 97)  # True

逻辑运算符的使用

# 逻辑运算符  逻辑与and 逻辑或or 逻辑not

# and全真为真
print(2 > 1 and 5 > 3 and 10 > 2)  # True
print(3 > 2 and 5 < 4 and 6 > 1)  # False

# or全假为假
print(3 > 2 or 5 < 4 or 6 > 1)  # True
print(3 < 2 or 5 < 4 or 6 < 1)  # False

# not 逻辑非运算,真变假,假变真
print(not(5 > 2))

逻辑运算的短路

# 逻辑与运算,只有所有的运算都是True,结果才是True
# 只有一个运算数是False,结果就是False
4 > 3 and print('hello world')
4 < 3 and print('你好世界')  # 逻辑与运算的短路问题

# 逻辑或运算,全是False,结果才是False
# 只有一个运算数是True,结果就是True
4 > 3 or print('哈哈哈')
4 < 3 or print('嘿嘿嘿')

# 逻辑运算的结果,一定是布尔值吗? 不一定
# 逻辑与运算做取值时,取第一个为False的值,如果所有的运算数都是True,取最后一个值
print(3 and 5 and 0 and 'hello')  # 0
print('good' and 'yes' and 100)  # 100

# 逻辑或运算做取值时,取第一个为True的值,如果所有的运算数都是False,取最后一个值
print(0 or [] or 'lisi' or 5 or 'ok')  # lisi
print(0 or [] or {} or ())  # ()

位运算符

# 按位与% 按位或| 按位异或^ 按位左移<< 按位右移>> 按位取反~
a = 23
b = 15
print(a & b)
print(a | b)
print(a ^ b)

x = 5
print(x << 2)  # a * 2的n次方
print(x >> 2)  # a / 2的n次方

位运算的短路

color = 0xF0384E
red = color >> 16
print(hex(red))
green = color >> 8 & 0xFF
print(hex(green))
blue = color & 0xFF
print(hex(blue))

运算符的优先级

print(10 - 2 * 3)  # 24 4

# 逻辑运算的优先级: not > and > or
print(True or False and True)  # True or False ==> True
print(True or True and False)  # True or False ==> True
print(False or not False)  # False or True ==> True

# 强烈建议: 在开发中,使用括号来说明运算符的优先级
print(True or True and False)  # True
print(True or (True and False))

# 逻辑运算符规则:
# 逻辑与运算:只要有一个运算数是False,就是False。
# 只要遇到False语句就停止,不再继续执行
# 取值:取第一个为False,如果所有的运算数都是True,取最后一个运算数

# 逻辑或运算:只要有一个运算数是True,结果就是True;只有所有的运算数都是False,结果才是False
# 短路:只要遇到True就停止
# 取值:取第一个为True的值,如果所有运算数都是False,取最后一个运算数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值