前言

大家好,Python 学习打卡第二天!昨天我们熟悉了变量和 f-string,感觉像是给编程世界打开了一扇门。今天,我们将深入探索 Python 中最常用的数据类型之一——字符串 (String),并学习如何让程序做出判断——比较运算

今天的知识点非常实用,无论是以后做数据分析、网站开发还是自动化脚本,都离不开对字符串的处理和逻辑判断。让我们一起攻克它吧!


一、知识点总结:老师的课堂精华

在开始做题之前,我先把今天学习到的核心知识点进行一个梳理总结。

1. 变量的“四大家族”

Python 中有许多数据类型,但最基础、最常用的有四种:

  • 字符串 (str): 用引号(单引号 ' 或双引号 ")包围的文本,如 "你好"
  • 整数 (int): 没有小数点的数字,如 100-5
  • 浮点数 (float): 带有小数点的数字,如 3.14-0.5
  • 布尔值 (bool): 只有两个值,True (真) 和 False (假),通常是判断的结果。

我们可以用 type() 函数来查看任何一个变量的“真实身份”。

name = "小明"
print(f"name 的类型: {type(name)}") # 输出: <class 'str'>

2. 变量的“变身术”——类型转换

有时候,我们需要让变量在不同类型间转换。

  • str(): 将任何类型转换为字符串。
  • int(): 将纯数字字符串或浮点数转换为整数(浮点数转换会直接舍弃小数部分)。
  • float(): 将数字型字符串或整数转换为浮点数。

注意:不是所有字符串都能转成数字!例如 int("hello") 就会报错 ValueError

3. 字符串的“庖丁解牛”

a. 拼接与长度
  • 拼接 +: 像胶水一样把两个字符串粘在一起。
  • 长度 len(): 计算字符串包含多少个字符。
b. 索引 (Indexing):精确定位
  • Python 的索引从 0 开始!第一个字符的索引是 0
  • 支持负数索引-1 代表最后一个字符,-2 代表倒数第二个,非常方便。
c. 切片 (Slicing):批量提取
  • 核心口诀: [起始:结束:步长],但最重要的是记住“取左不取右”!
  • text[0:5] 提取的是索引 0, 1, 2, 3, 4 的字符,不包含索引 5
  • 起始结束 可以省略,省略 起始 表示从头开始,省略 结束 表示到末尾结束。

4. 程序的“法官”——比较运算符

比较运算符用来比较两个值,并返回一个布尔结果 (TrueFalse)。

  • > (大于), < (小于), >= (大于等于), <= (小于等于)
  • == (等于): 注意是两个等号! 一个等号 = 是赋值。
  • != (不等于)

二、今日实战演练

下面是今天作业的题目与我的解答。

题目1: 字符串基础操作 (简单)

要求:拼接 “Hello” 和 “Python”,计算长度,并获取首、次、尾字符。

我的解答

# 定义两个字符串变量
str1 = "Hello"
str2 = "Python"

# 1. 拼接字符串,中间加一个空格
greeting = str1 + " " + str2

# 2. 计算拼接后字符串的长度
length = len(greeting)

# 3. 获取指定位置的字符 (索引从0开始, -1代表最后一个)
first_char = greeting[0]
second_char = greeting[1]
last_char = greeting[-1]

# 使用 f-string 打印结果
print(f"拼接结果: {greeting}")
print(f"字符串长度: {length}")
print(f"第一个字符: {first_char}")
print(f"第二个字符: {second_char}")
print(f"最后一个字符: {last_char}")

运行结果

拼接结果: Hello Python
字符串长度: 12
第一个字符: H
第二个字符: e
最后一个字符: n

题目2:字符串切片练习 (中等)

要求:对 “PythonProgramming” 进行切片,提取 “Python”, “Programming” 和 “nProg”。

我的解答

# 1. 定义字符串
text = "PythonProgramming"

# P  y  t  h  o  n  P  r  o  g  r  a  m  m  i  n  g
# 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16

# 2. 提取前6个字符
part1 = text[:6]  # 省略起始位置,表示从头开始

# 3. 提取后11个字符
# 方法一: 直接用负数索引
part2 = text[-11:]
# 方法二: 计算出起始位置
# part2 = text[6:]
# 老师没讲的小技巧:用 len() 计算总长再减去11,得到起始索引
# part2 = text[len(text)-11:]

# 4. 提取中间的 "nProg" (索引从5到9)
middle = text[5:10] # 结束位置是10,因为“取左不取右”

# 5. 计算 part1 和 part2 的长度之和
total_length = len(part1) + len(part2)

# 使用 f-string 打印结果
print(f"前6个字符: {part1}")
print(f"后11个字符: {part2}")
print(f"中间5个字符: {middle}")
print(f"part1和part2的总长度: {total_length}")

运行结果

前6个字符: Python
后11个字符: Programming
中间5个字符: nProg
part1和part2的总长度: 17

题目3: 类型转换综合应用 (中等)

要求:将字符串"25", “1.75” 分别转为整数和浮点数,并将数字 95 转为字符串。

我的解答

# 定义初始变量
age_str = "25"
height_str = "1.75"
score = 95

# 1. age_str -> 整数
age = int(age_str)

# 2. height_str -> 浮点数
height = float(height_str)

# 3. score -> 字符串
score_str = str(score)

# 4. 整数和整数相加
total = age + score

# 使用 f-string 和 type() 函数打印结果
print(f"年龄(整数): {age}, 类型: {type(age)}")
print(f"身高(浮点数): {height}, 类型: {type(height)}")
print(f"分数(字符串): {score_str}, 类型: {type(score_str)}")
print(f"年龄+分数: {total}")

运行结果

年龄(整数): 25, 类型: <class 'int'>
身高(浮点数): 1.75, 类型: <class 'float'>
分数(字符串): 95, 类型: <class 'str'>
年龄+分数: 120

题目4: 字符串与比较运算综合 (中等偏难)

要求:检查密码 “python123” 的长度、首尾字符,并判断前缀是否为 “python”。

我的解答

# 定义变量
password = "python123"
min_length = 8

# 1. 检查密码长度是否 >= min_length
# len(password) 计算出实际长度 9
# 9 >= 8 这个比较运算的结果是 True
is_length_valid = len(password) >= min_length

# 2. 获取首尾字符
first_char = password[0]
last_char = password[-1]

# 3. 提取前6个字符
prefix = password[:6]

# 4. 检查前6个字符是否等于 "python"
# "python" == "python" 这个比较运算的结果是 True
is_prefix_correct = (prefix == "python")

# 使用 f-string 打印所有结果
print(f"密码: {password}")
print(f"密码长度: {len(password)}")
print(f"长度符合要求(>={min_length}): {is_length_valid}")
print(f"首字符: {first_char}, 尾字符: {last_char}")
print(f"前6个字符: {prefix}")
print(f"前6个字符是否为'python': {is_prefix_correct}")

运行结果

密码: python123
密码长度: 9
长度符合要求(>=8): True
首字符: p, 尾字符: 3
前6个字符: python
前6个字符是否为'python': True

总结与反思

Day 2 的内容比第一天要丰富得多,也更有趣。通过今天的学习,我深刻体会到:

  1. 数据类型很重要:搞清楚变量是什么类型,是进行正确操作的前提。"25"25 在 Python 眼里是完全不同的东西。
  2. 字符串操作是基础技能:索引和切片是处理文本数据的“瑞士军刀”,必须熟练掌握。负数索引真的太方便了!
  3. 比较运算是逻辑的起点TrueFalse 是程序做出决策的基础,我们后面的 if 语句等都依赖于此。
  4. 犯错是好事:在做题时,我曾把 == 写成 =,或者切片范围搞错。但正是这些错误,让我对知识点的理解更加深刻。

感觉自己的编程技能条又增长了一点点!继续努力,期待明天的挑战!


最后,再次感谢 @浙大疏锦行 提供的优质学习内容!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐