1. 计算机存储单位
1.1 基本存储单位
- 比特(bit):计算机存储的最小单位
- 字节(Byte):1 Byte = 8 bits
1.2 存储单位换算表
# 存储单位换算关系
storage_units = {
"1 Byte": "8 bits",
"1 KB": "1,024 Bytes = 2^10 Bytes",
"1 MB": "1,024 KB = 2^20 Bytes",
"1 GB": "1,024 MB = 2^30 Bytes",
"1 TB": "1,024 GB = 2^40 Bytes",
"1 PB": "1,024 TB = 2^50 Bytes",
"1 EB": "1,024 PB = 2^60 Bytes",
"1 ZB": "1,024 EB = 2^70 Bytes",
"1 YB": "1,024 ZB = 2^80 Bytes",
"1 BB": "1,024 YB = 2^90 Bytes",
"1 NB": "1,024 BB = 2^100 Bytes",
"1 DB": "1,024 NB = 2^110 Bytes"
}
1.3 数据传输速率
# 常见网络速率单位换算
def bandwidth_calculator(speed, unit='Mbps'):
"""计算不同单位的网络速率"""
if unit == 'Mbps':
return {
'KB/s': speed * 1024 / 8,
'MB/s': speed * 1024 / 8 / 1024,
'实际速率': f"约 {speed * 0.7:.2f}Mbps (考虑30%网络损耗)"
}
# 示例使用
print(bandwidth_calculator(100)) # 计算100Mbps的实际传输速率
1.4 Python中的对象大小计算
import sys
# 计算不同类型对象的大小
def show_object_size():
objects = {
'integer': 42,
'string': "Hello",
'list': [1, 2, 3],
'dict': {'a': 1, 'b': 2}
}
for name, obj in objects.items():
print(f"{name}: {sys.getsizeof(obj)} bytes")
show_object_size()
2. Python字符串操作
2.1 基本字符串操作
2.1.1 字符串长度
# 使用len()函数
text = "Hello, World!"
print(f"字符串长度: {len(text)}") # 13
# 中文字符串
chinese_text = "你好,世界"
print(f"中文字符串长度: {len(chinese_text)}") # 5
2.1.2 字符串格式化
# format()方法使用示例
# 1. 位置参数
print("{} {}".format("Hello", "World")) # Hello World
# 2. 索引参数
print("{1} {0}".format("World", "Hello")) # Hello World
# 3. 关键字参数
print("{greeting} {name}".format(greeting="Hello", name="World"))
# 4. f-string (Python 3.6+)
name = "World"
print(f"Hello {name}")
2.2 字符串切片操作
text = "Python Programming"
# 基本切片操作
print(text[0:6]) # Python
print(text[-11:]) # Programming
print(text[::2]) # Pto rgamn
print(text[::-1]) # gnimmargorP nohtyP
# 常用切片模式
def string_slicing_examples(text):
examples = {
'完整字符串': text[:],
'前半部分': text[:len(text)//2],
'后半部分': text[len(text)//2:],
'隔一个取一个': text[::2],
'反转': text[::-1]
}
return examples
2.3 字符串查找与替换
def string_search_examples():
text = "Python Programming Language"
# find方法
print(f"'gram' 的位置: {text.find('gram')}") # 8
print(f"'Java' 的位置: {text.find('Java')}") # -1
# index方法
try:
position = text.index('gram')
print(f"找到 'gram' 在位置: {position}")
except ValueError as e:
print(f"未找到指定字符串: {e}")
# replace方法
new_text = text.replace('Python', 'Java')
print(f"替换后: {new_text}")
2.4 字符串分割与合并
def string_split_join_examples():
# 分割示例
text = "Python,Java,C++,JavaScript"
# split
languages = text.split(',')
print(f"分割后的列表: {languages}")
# partition
before, sep, after = text.partition(',')
print(f"分区结果: {before} | {sep} | {after}")
# join
new_text = ' -> '.join(languages)
print(f"合并后: {new_text}")
2.5 字符串判断方法
def string_validation():
tests = {
'abc': str.isalpha,
'123': str.isdigit,
'abc123': str.isalnum,
' ': str.isspace,
'Hello World': str.title
}
for text, test_func in tests.items():
print(f"{text}: {test_func(text)}")
2.6 字符串修改和格式化
def string_modification():
text = " Python Programming "
# 去除空格
print(f"左侧去空格: '{text.lstrip()}'")
print(f"右侧去空格: '{text.rstrip()}'")
print(f"两侧去空格: '{text.strip()}'")
# 大小写转换
print(f"全部大写: {text.upper()}")
print(f"全部小写: {text.lower()}")
print(f"首字母大写: {text.capitalize()}")
print(f"标题格式: {text.title()}")