1. 概述
Python语言是一种简单易学的高级编程语言,其代码简洁易懂,被广泛应用于数据分析、人工智能、web开发等领域。本文将介绍Python中数据类型的相关知识和进制转换的方法。
2. 数据类型
2.1 基本类型
Python中的基本数据类型有整型、浮点型、布尔型、字符串型、空值类型。
# 整型
a = 10
print(type(a)) # <class 'int'>
# 浮点型
b = 3.14
print(type(b)) # <class 'float'>
# 布尔型
c = True
print(type(c)) # <class 'bool'>
# 字符串型
d = 'Hello World!'
print(type(d)) # <class 'str'>
# 空值类型
e = None
print(type(e)) # <class 'NoneType'>
2.2 容器类型
Python中的容器类型有列表、元组、字典、集合。
# 列表
lst = [1, 2, 3]
print(type(lst)) # <class 'list'>
# 元组
tup = (4, 5, 6)
print(type(tup)) # <class 'tuple'>
# 字典
dic = {'name': 'Tom', 'age': 21}
print(type(dic)) # <class 'dict'>
# 集合
s = {1, 2, 3}
print(type(s)) # <class 'set'>
3. 进制转换
3.1 十进制转二进制
十进制转二进制的方法是不断除以2,直到商为0,将每次的余数倒序排列即为二进制数。
def decimal_to_binary(n: int):
# n为十进制数
binary_lst = []
while n != 0:
binary_lst.append(n % 2)
n //= 2
binary_lst.reverse()
return binary_lst
# 测试
num = 13
binary_lst = decimal_to_binary(num)
binary_str = ''.join(str(i) for i in binary_lst)
print(f'{num}的二进制数为{binary_str}') # 13的二进制数为1101
3.2 二进制转十进制
二进制转十进制的方法是将每位上的数乘以对应的权值,再将结果相加。
def binary_to_decimal(binary: str):
# binary为二进制数,字符串类型
decimal = 0
length = len(binary)
for i in range(length):
decimal += int(binary[length-i-1]) * pow(2, i)
return decimal
# 测试
binary_str = '1101'
decimal_num = binary_to_decimal(binary_str)
print(f'{binary_str}的十进制数为{decimal_num}') # 1101的十进制数为13
3.3 十进制转十六进制
十进制转十六进制的方法是不断除以16,直到商为0,将每次的余数倒序排列,将得到的数作为十六进制数。
def decimal_to_hexadecimal(n: int):
# n为十进制数
hexadecimal_lst = []
while n != 0:
remainder = n % 16
if remainder < 10:
hexadecimal_lst.append(str(remainder))
else:
hexadecimal_lst.append(chr(ord('A')+remainder-10))
n //= 16
hexadecimal_lst.reverse()
return ''.join(str(i) for i in hexadecimal_lst)
# 测试
num = 255
hexadecimal_str = decimal_to_hexadecimal(num)
print(f'{num}的十六进制数为{hexadecimal_str}') # 255的十六进制数为FF
3.4 十六进制转十进制
十六进制转十进制的方法是将每位上的数乘以对应的权值,再将结果相加。
def hexadecimal_to_decimal(hexadecimal: str):
# hexadecimal为十六进制数,字符串类型
decimal = 0
length = len(hexadecimal)
for i in range(length):
if hexadecimal[length-i-1].isdigit():
decimal += int(hexadecimal[length-i-1]) * pow(16, i)
else:
decimal += (ord(hexadecimal[length-i-1])-55) * pow(16, i)
return decimal
# 测试
hexadecimal_str = 'FF'
decimal_num = hexadecimal_to_decimal(hexadecimal_str)
print(f'{hexadecimal_str}的十进制数为{decimal_num}') # FF的十进制数为255
4. 温度转换
4.1 摄氏度与华氏度转换
摄氏度和华氏度是最常见的两种温度表示方法。C表示摄氏度,F表示华氏度,两者的转换公式如下:
C = (F - 32) / 1.8
F = C * 1.8 + 32
def celsius_to_fahrenheit(celsius: float):
# celsius为摄氏度,返回对应的华氏度
fahrenheit = celsius * 1.8 + 32
return fahrenheit
def fahrenheit_to_celsius(fahrenheit: float):
# fahrenheit为华氏度,返回对应的摄氏度
celsius = (fahrenheit - 32) / 1.8
return celsius
# 测试
celsius_temperature = 30.
fahrenheit_temperature = celsius_to_fahrenheit(celsius_temperature)
print(f'摄氏度{celsius_temperature}等于华氏度{fahrenheit_temperature:.2f}') # 摄氏度30.0等于华氏度86.00
fahrenheit_temperature = 80.6
celsius_temperature = fahrenheit_to_celsius(fahrenheit_temperature)
print(f'华氏度{fahrenheit_temperature}等于摄氏度{celsius_temperature:.2f}') # 华氏度80.6等于摄氏度27.00
4.2 摄氏度与开氏度转换
摄氏度和开氏度是温度表示法中常见的两种,C表示摄氏度,K表示开氏度,两者的转换公式如下:
K = C + 273.15
C = K - 273.15
def celsius_to_kelvin(celsius: float):
# celsius为摄氏度,返回对应的开氏度
kelvin = celsius + 273.15
return kelvin
def kelvin_to_celsius(kelvin: float):
# kelvin为开氏度,返回对应的摄氏度
celsius = kelvin - 273.15
return celsius
# 测试
celsius_temperature = 30.
kelvin_temperature = celsius_to_kelvin(celsius_temperature)
print(f'摄氏度{celsius_temperature}等于开氏度{kelvin_temperature:.2f}') # 摄氏度30.0等于开氏度303.15
kelvin_temperature = 303.15
celsius_temperature = kelvin_to_celsius(kelvin_temperature)
print(f'开氏度{kelvin_temperature}等于摄氏度{celsius_temperature:.2f}') # 开氏度303.15等于摄氏度30.00
4.3 华氏度与开氏度转换
同样地,华氏度和开氏度也可以相互转换:
K = (F + 459.67) / 1.8
F = K * 1.8 - 459.67
def fahrenheit_to_kelvin(fahrenheit: float):
# fahrenheit为华氏度,返回对应的开氏度
kelvin = (fahrenheit + 459.67) / 1.8
return kelvin
def kelvin_to_fahrenheit(kelvin: float):
# kelvin为开氏度,返回对应的华氏度
fahrenheit = kelvin * 1.8 - 459.67
return fahrenheit
# 测试
fahrenheit_temperature = 80.6
kelvin_temperature = fahrenheit_to_kelvin(fahrenheit_temperature)
print(f'华氏度{fahrenheit_temperature}等于开氏度{kelvin_temperature:.2f}') # 华氏度80.6等于开氏度299.15
kelvin_temperature = 299.15
fahrenheit_temperature = kelvin_to_fahrenheit(kelvin_temperature)
print(f'开氏度{kelvin_temperature}等于华氏度{fahrenheit_temperature:.2f}') # 开氏度299.15等于华氏度80.00
5. 总结
本文介绍了Python中基本数据类型和容器类型的相关知识,以及进制转换和温度转换的方法。在实际应用中,我们需要根据实际需求选择不同的数据类型,进行相应的转换和计算,以便得到我们需要的结果。