Python基础:数字、字节串与空值以及字符串常用api

一、Python中的占位符与字符串格式化

1. 占位符格式化(传统方式)

Python提供了多种字符串格式化的方式,其中最传统的是使用占位符:

语法规则

格式化字符串 % 参数1
# 或者
格式化字符串 % (参数1, 参数2, 参数3)

# 基本占位符使用
name = "张三"
age = 25
print("姓名: %s, 年龄: %d" % (name, age))

# 常用占位符类型:
# %s - 字符串
# %d - 十进制整数
# %f - 浮点数
# %o - 八进制整数
# %x - 十六进制整数
# %% - 百分号本身

str = """
甲方:________%s__________
乙方:________%s__________
               金额:__%d__
"""
s = str % ("小王", "小李",10000)
print(s)


# 控制浮点数精度
pi = 3.1415926
print("π的值是: %.2f" % pi)  # 输出: π的值是: 3.14

# 数字格式化
num = 12345
print("数字: %08d" % num)  # 输出: 数字: 00012345

2. f-string(Python 3.6+推荐)

f-string是Python 3.6引入的字符串格式化方法,更加简洁直观:

f-string 格式化字符串以 f 开头,字符串中的表达式用 {} 包起来。

# 基本f-string使用
# 以 f 或 F 开头,用大括号 {} 包裹变量或表达式
# : 是格式说明符的开始符号

name = "李四"
age = 30
print(f"姓名: {name}, 年龄: {age}")

# 表达式计算
a, b = 5, 3
print(f"{a} + {b} = {a + b}")  # 输出: 5 + 3 = 8

# 格式化数字
pi = 3.1415926
# .2 表示保留 2 位小数,会四舍五入到指定精度
print(f"π的值是: {pi:.2f}")  # 输出: π的值是: 3.14

# 对齐与填充
num = 42
# 变量名:自定义填充字符(可以是空格)>/<宽度数
print(f"数字: {num:0>5}")  # 输出: 数字: 00042 (右对齐:> )
print(f"数字: {num:<5}")   # 输出: 数字: 42   (左对齐: < )
# 总结:向哪边对齐,尖口对那边

二、Python数字类型详解

1. 整数(int)

Python中的整数没有大小限制(仅受内存限制):

# 基本整数
a = 10
b = -5
c = 0

# 不同进制表示
binary = 0b1010  # 二进制 10
octal = 0o12     # 八进制 10
hexadecimal = 0xA # 十六进制 10

# 大整数
big_num = 123456789012345678901234567890
print(big_num + 1)  # Python可以轻松处理大整数

# 整数运算 还有 加+ 减- 乘* 除/
print(7 // 3)  # 整除: 2
print(7 % 3)   # 取余: 1
print(2 ** 3)  # 幂运算: 8

2. 浮点数(float)

浮点数用于表示实数,但有精度限制:

# 基本浮点数
f1 = 3.14
f2 = -0.001
f3 = 2.0      # 虽然是整数形式,但有小数点就是浮点数

# 科学计数法
sci = 1.23e-4  # 0.000123
sci1 = 2.9979E8   	# 等同于 299790000.0


# 浮点数精度问题(注意这是二进制浮点数的普遍问题)
print(0.1 + 0.2)  # 输出: 0.30000000000000004

# 浮点数运算
print(7 / 3)    # 除法: 2.333...
print(round(3.14159, 2))  # 四舍五入: 3.14

3. 布尔类型(bool)

布尔类型是整型的子类,只有两个值:TrueFalse

Bool

  • 表示真假、对错、黑白等;

  • 只有2个值TrueFalse

  • 类型转换使用bool()方法

  • 非0都是True

  • 0、0.0、-0.0、空字符串、空列表、空字典、空集合、空元组、None等都是False;

提示:后面学的与运算会用到这个 

# 基本布尔值
t = True
f = False

# 布尔运算
print(True and False)  # False and:两个都要为true,如果第一个是false就不会运算第二个代码块
print(True or False)   # True or:只要有一个true就为true
print(not True)        # False

# 布尔值实际上是整数
print(True == 1)   # True
print(False == 0)  # True
print(True + 1)    # 2

# 其他类型转布尔
print(bool(1))     # True 
print(bool(0))     # False
print(bool(""))    # False
print(bool("abc")) # True:转换成asc码后不为0

4. 复数(complex)

Python原生支持复数类型:

# 基本复数
c1 = 3 + 4j
c2 = complex(2, -3)  # 2 - 3j

# 复数运算
print(c1 + c2)  # (5+1j)
print(c1 * c2)  # (18-1j)
print(c1.conjugate())  # 共轭复数(实部不变,虚部取反): (3-4j)
print(abs(c1))  # 模: 5.0

# 获取实部和虚部
print(c1.real)  # 3.0
print(c1.imag)  # 4.0

5. 数字类型转换

Python数字类型之间可以相互转换:

# 整数与浮点数转换
i = 10
f = float(i)  # 10.0
i2 = int(3.9) # 3 (截断小数部分)

# 字符串转数字
s = "123"
n = int(s)    # 123
f = float("3.14")  # 3.14

# 字母/符号/标点转数字
w = 'a'  # 字符要用引号包围,且只能有一个字符,不能多个
o = ord(w)  # ord()函数
print(o)  # 输出: 97('a'的Unicode码点)

# 反向操作
print(chr(97))     # 'a'
print(chr(23383))  # '字'

# 布尔值转换
print(int(True))   # 1
print(float(False)) # 0.0

# 复数转换(注意不能直接转为int或float)
c = 3+4j
# int(c)  # 会报错

三、字节串(bytes)

字节串用于处理二进制数据:

# 创建字节串
b1 = b'hello'  # 只能包含ASCII字符
b2 = bytes([65, 66, 67])  # b'ABC'

# 字符串转字节串
s = "你好"
b = s.encode('utf-8')  # b'\xe4\xbd\xa0\xe5\xa5\xbd'

# 字节串转字符串
s2 = b.decode('utf-8')  # "你好"

# 字节串操作
print(b1[0])      # 104 (h的ASCII码)
print(b1 + b2)    # b'helloABC'
print(len(b1))    # 5:输出字符串b1的长度

# 十六进制表示
hex_bytes = bytes.fromhex('2Ef0 F1f2')  # b'.\xf0\xf1\xf2'
print(hex_bytes.hex())  # '2ef0f1f2'

四、空值(None)

None是Python中表示空值的特殊类型:

# None的基本使用
var = None
print(var)  # None

# None与其他值的比较
print(None == None)  # True
print(None == False) # False
print(None == 0)     # False

# 函数默认返回值
def do_nothing():
    pass

result = do_nothing()
print(result)  # None

# 作为默认参数
def greet(name=None):
    if name is None:
        print("Hello, stranger!")
    else:
        print(f"Hello, {name}!")

greet()       # Hello, stranger!
greet("Alice") # Hello, Alice!

五、常见API总结

数字类型常用方法:

# 绝对值
abs(-5)  # 5

# 最大值/最小值
max(1, 3, 2)  # 3
min([4, 2, 5]) # 2

# 幂运算
pow(2, 3)  # 8

# 四舍五入
round(3.14159, 2)  # 3.14

# 数学运算
import math
math.sqrt(16)  # 4.0
math.sin(math.pi/2)  # 1.0

字节串常用方法: 

# 1. str.lower(): 将字符串转换为小写
text = "Hello, World!"
print(text.lower())  # 输出: hello, world!

# 2. str.upper(): 将字符串转换为大写
text = "Hello, World!"
print(text.upper())  # 输出: HELLO, WORLD!

# 3. str.strip(): 移除字符串两端的空白字符
text = "   Hello, World!   "
print(text.strip())  # 输出: Hello, World!

# 4. str.split(): 将字符串拆分为列表
text = "Hello, World!"
print(text.split())  # 输出: ['Hello,', 'World!']
text = "Hello,World!"
print(text.split(','))  # 输出: ['Hello', 'World!']

# 5. str.join(): 将列表中的字符串连接为一个字符串
words = ['Hello', 'World']
print(" ".join(words))  # 输出: Hello World
words = ['apple', 'banana', 'cherry']
print(", ".join(words))  # 输出: apple, banana, cherry

# 6. str.replace(): 替换字符串中的子字符串
text = "Hello, World!"
print(text.replace("World", "Python"))  # 输出: Hello, Python!

# 7. str.find(): 查找子字符串,返回第一次出现的位置
text = "Hello, World!"
print(text.find("World"))  # 输出: 7
print(text.find("Python"))  # 输出: -1(如果未找到则返回 -1)

# 8. str.startswith(): 检查字符串是否以指定子字符串开头
text = "Hello, World!"
print(text.startswith("Hello"))  # 输出: True
print(text.startswith("World"))  # 输出: False

# 9. str.endswith(): 检查字符串是否以指定子字符串结尾
text = "Hello, World!"
print(text.endswith("World!"))  # 输出: True
print(text.endswith("Hello"))  # 输出: False

# 10. str.isdigit(): 检查字符串是否只包含数字字符
text1 = "12345"
text2 = "12345abc"
print(text1.isdigit())  # 输出: True
print(text2.isdigit())  # 输出: False

# 11. str.isalpha(): 检查字符串是否只包含字母字符
text1 = "Hello"
text2 = "Hello123"
print(text1.isalpha())  # 输出: True
print(text2.isalpha())  # 输出: False

# 12. str.isalnum(): 检查字符串是否只包含字母和数字字符
text1 = "Hello123"
text2 = "Hello 123"
print(text1.isalnum())  # 输出: True
print(text2.isalnum())  # 输出: False

# 13. str.title(): 将字符串中的每个单词的首字母转换为大写
text = "hello, world!"
print(text.title())  # 输出: Hello, World!

# 14. str.capitalize(): 将字符串的首字母转换为大写
text = "hello, world!"
print(text.capitalize())  # 输出: Hello, world!

# 15. str.count(): 计算子字符串在字符串中出现的次数
text = "Hello, World! Hello, Python!"
print(text.count("Hello"))  # 输出: 2
print(text.count("Python"))  # 输出: 1

# 16. str.format(): 格式化字符串
name = "John"
age = 30
print("My name is {} and I am {} years old.".format(name, age))
# 输出: My name is John and I am 30 years old.
print(f"My name is {name} and I am {age} years old.")
# 输出: My name is John and I am 30 years old. (使用 f-string)

六、总结

Python提供了丰富的基础数据类型,掌握这些类型及其操作方法对于Python编程至关重要:

  1. 字符串格式化:优先使用f-string,简洁高效

  2. 数字类型:包括整数、浮点数、布尔值和复数,各有特点

  3. 字节串:处理二进制数据的关键类型

  4. 空值:None在Python中表示空值,有特殊用途

理解这些基础数据类型后,你将能够更自如地进行Python编程,并为学习更复杂的数据结构打下坚实基础。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值