2_Python入门基础(二):进制转换、数据类型转换和运算符

一、进制转换

现代的计算机和依赖计算机的设备里都用到二进制(即0和1)来保存和表示数据,一个二进制表示一个比特(Bit)。
在二进制的基础上,计算机还支持八进制和十六进制这两种进制。
除了计算机里的进制以外,我们生活中经常用到的是十进制。
Python语言支持二进制、八进制、十六进制以及十进制的数字表示。

a = 12 # 默认数字是十进制
print(a + 1)

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

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

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

将十进制数转换为其他进制数

在Python中,可以使用内置函数int()和str()来进行十进制数和其他进制数之间的转换。

  • 要将一个十进制数转换为二进制数,可以使用内置函数bin()。例如:
binary_num = bin(10)
print(binary_num)  # 输出:'0b1010'

在这个例子中,我们将十进制数10转换为了二进制数。bin()函数返回的是一个字符串,其中包含了数字的二进制表示。如果要将结果转换为整数,可以使用内置函数int():

binary_num = int('0b1010', 2)
print(binary_num)  # 输出:10

将十进制数转换为八进制数

  • 要将一个十进制数转换为八进制数,可以使用内置函数oct()。例如:
octal_num = oct(10)
print(octal_num)  # 输出:'0o12'

在这个例子中,我们将十进制数10转换为了八进制数。oct()函数返回的是一个字符串,其中包含了数字的八进制表示。如果要将结果转换为整数,可以使用内置函数int():

octal_num = int('0o12', 8)
print(octal_num)  # 输出:14

将十进制数转换为十六进制数

  • 要将一个十进制数转换为十六进制数,可以使用内置函数hex()。例如:
hex_num = hex(10)
print(hex_num)  # 输出:'0xa'

在这个例子中,我们将十进制数10转换为了十六进制数。hex()函数返回的是一个字符串,其中包含了数字的十六进制表示。如果要将结果转换为整数,可以使用内置函数int():

hex_num = int('0xa', 16)
print(hex_num)  # 输出:10

二、数据类型转换

Python中的数据类型转换非常重要,因为它们可以帮助我们更好地处理和分析数据。在Python中,有几种常见的数据类型,如整数、浮点数、字符串、列表、元组、字典等。

(一)整数与浮点数之间的转换

整数和浮点数是Python中最常用的数据类型之一。当我们需要将一个整数或浮点数转换为另一个数据类型时,需要注意精度问题。例如:

a = 3.14
b = int(a)
print(b)  # 输出:3

在这个例子中,我们将浮点数a转换为整数b,由于浮点数的精度有限,所以结果可能会有误差。为了避免这种情况,我们可以使用round()函数来四舍五入:

a = 3.1415926
b = round(a)
print(b)  # 输出:3

(二)字符串与整数之间的转换

在Python中,我们可以使用int()函数将一个字符串转换为整数:

s = "123"
i = int(s)
print(i)  # 输出:123

同样,我们也可以使用float()函数将一个字符串转换为浮点数:

s = "123.45"
f = float(s)
print(f)  # 输出:123.45 	

(三)列表与元组之间的转换

列表和元组都是Python中的序列数据类型,它们之间可以相互转换。例如:

lst = [1, 2, 3]
tup = tuple(lst)
print(tup)  # 输出:(1, 2, 3)

注意:元组是不可变的,所以我们不能直接修改元组中的元素。如果需要修改元组中的元素,可以将元组转换为列表,然后进行修改,最后再将列表转换回元组:

lst = [1, 2, 3]
tup = tuple(lst)
lst[0] = 42
tup = tuple(lst)  # 将列表转换回元组
print(tup)  # 输出:(42, 2, 3)

(四)字典与集合之间的转换

字典和集合都是Python中的映射数据类型,它们之间可以相互转换。例如:

d = {"a": 1, "b": 2}
set_d = set(d.items())  # 将字典转换为集合(键值对形式)
print(set_d)  # 输出:{('a', 1), ('b', 2)}

三、常见运算符

(一)算术运算符

  1. 加法(+):用于连接两个数值。
  2. 减法(-):用于从一个数值中减去另一个数值。
  3. 乘法(*):用于将两个数值相乘。
  4. 除法(/):用于将一个数值除以另一个数值。
  5. 取模(%):用于计算一个数值除以另一个数值的余数。
  6. 幂运算(**):用于计算一个数值的指数幂。
  7. 整除(//):与取模()相同,但结果为整数。
    示例:
a = 10
b = 3
c = a + b  # 结果为13
d = a - b  # 结果为7
e = a * b  # 结果为30
f = a / b  # 结果为3.3333333333333335
g = a % b  # 结果为1
h = a ** b  # 结果为1000
i = a // b  # 结果为3

(二)赋值运算符

  1. =:用于将一个值赋给变量。
  2. +=:用于将一个值加到变量上并更新变量的值。
  3. -=:用于将一个值从变量上减去并更新变量的值。
  4. *=:用于将一个值乘以变量并更新变量的值。
  5. /=:用于将一个值除以变量并更新变量的值。
  6. %=:用于将一个值对变量取模并更新变量的值。

(三)比较运算符

比较运算符用于比较两个值的大小关系。在Python中,常见的比较运算符有以下几种:

  1. 等于(==):判断两个值是否相等。
  2. 不等于(!=):判断两个值是否不相等。
  3. 大于(>):判断左边的值是否大于右边的值。
  4. 小于(<):判断左边的值是否小于右边的值。
  5. 大于等于(>=):判断左边的值是否大于或等于右边的值。
  6. 小于等于(<=):判断左边的值是否小于或等于右边的值。
a = 10
b = 20
c = a > b
d = a == b
e = a < b
f = a >= b
g = a <= b

(四)逻辑运算符

逻辑运算符用于对布尔值进行逻辑运算,包括与(and)、或(or)和非(not)三种。

  1. 与(and):当且仅当两个条件都为真时,结果才为真。
  2. 或(or):只要有一个条件为真,结果就为真。
  3. 非(not):对一个条件取反,即如果条件为真,则结果为假;如果条件为假,则结果为真。
    示例:
a = True
b = False
c = a and b
d = a or b
e = not a
f = not b
g = (a and b) and (b and c)
h = (a and b) or (b and c)
i = not (a and b)
j = not (a or b)

(五)位运算符

位运算符用于对二进制数进行位操作,包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)和左移(<<)等。

  1. 按位与(&):将两个二进制数的每一位进行与运算,如果两个对应位都为1,则结果为1,否则为0。
  2. 按位或(|):将两个二进制数的每一位进行或运算,如果两个对应位有一个为1,则结果为1,否则为0。
  3. 按位异或(^):将两个二进制数的每一位进行异或运算,如果两个对应位不同,则结果为1,否则为0。
  4. 按位取反(~):对一个二进制数的每一位进行取反操作,即将0变为1,将1变为0。
  5. 左移(<<):将一个二进制数向左移动指定的位数,右边用0填充。
    示例:
a = 5  # 二进制表示为 0101
b = 3  # 二进制表示为 0011
c = a & b  # 结果为 0001,即十进制的 1
d = a | b  # 结果为 0111,即十进制的 7
e = a ^ b  # 结果为 0110,即十进制的 6
f = ~a  # 结果为 -6,即二进制的 -0b110
g = a << 2  # 结果为 20,即二进制的 1010

(六)运算符的优先级

Python中的运算符优先级如下:

  1. 括号(())的优先级最高,先计算括号内的表达式。
  2. 乘法和除法的优先级高于加法和减法。
  3. 位运算符(&、|、^)的优先级高于其他运算符。
  4. 比较运算符(==、!=、>、<、>=、<=)的优先级次于其他运算符。
  5. 逻辑运算符(and、or、not)的优先级最低。
    例如,对于表达式a + b * c / d,先计算b * c / d,然后再加上a,即先进行乘法和除法运算,再进行加法运算。而对于表达式a < b and c > d,先计算and运算,因为and运算符的优先级最高,然后再计算c > d。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值