引言:很久没有写 Python 了,有一点生疏。这是学习《Python 编程:从入门到实践(第3版)》的课后练习记录,主要目的是快速回顾基础知识。
练习1: 简单消息
将一条消息赋给变量,并将其打印出来。
# 将字符串 "张三" 赋给变量 name
name = "张三"
# 打印变量 name 的值
print(name)
张三
知识点回顾:
- 变量的定义与赋值:使用
=
将值赋给一个变量名。 print()
函数:用于将指定的内容输出到控制台。
练习2:多条简单消息
将一条消息赋给变量,并将其打印出来;再将变量的值修改为一条新消息,并将其打印出来。
# 将字符串 "李四" 赋给变量 name
name = "李四"
# 打印变量 name 的当前值
print(name)
# 将变量 name 的值修改为 "王五"
name = "王五"
# 打印变量 name 修改后的值
print(name)
李四
王五
知识点回顾:
- 变量的重新赋值:变量的值可以被新的值覆盖。
- 程序按顺序执行:代码从上到下依次执行。
练习3:个性化消息
用变量表示一个人的名字,并向其显示一条消息。显示的消息应非常简单,如下所示。
Hello Eric, would you like to learn some Python today?
# 用变量存储一个人的名字
name = 'Eric'
# 使用 f-string (格式化字符串字面量) 创建个性化消息并打印
print(f'Hello {name}, would you like to learn some Python today?')
Hello Eric, would you like to learn some Python today?
知识点回顾:
- f-string:一种方便的字符串格式化方法,可以在字符串中直接嵌入变量和表达式。
- 单引号和双引号定义字符串:Python中两者通常可以互换,但需保持一致性。
练习4:调整名字的大小写
用变量表示一个人的名字,再分别以全小写、全大写和首字母大写的方式显示这个人名。
first_name = "jack"
last_name = "ma"
# 使用 f-string 拼接姓和名
full_name = f"{first_name} {last_name}"
# 全小写: 使用 .lower() 方法
print(full_name.lower())
# 全大写: 使用 .upper() 方法
print(full_name.upper())
# 首字母大写: 使用 .title() 方法
print(full_name.title())
jack ma
JACK MA
Jack Ma
知识点回顾:
- 字符串方法:
.lower()
: 将字符串中所有大写字母转换为小写。.upper()
: 将字符串中所有小写字母转换为大写。.title()
: 将字符串中每个单词的首字母转换为大写,其余字母为小写。
- f-string:用于构建
full_name
。
练习5:名言1
找到你钦佩的名人说的一句名言,将这个名人的姓名和名言打印出来。输出应类似于下面这样(包括引号)。
Albert Einstein once said, “A person who never made a mistake never tried anything new.”
# 直接打印包含名人姓名和名言的字符串
# 注意字符串中引号的使用,外部使用单引号,内部的名言使用双引号,避免冲突
print('王阳明有云:"知行合一"。')
王阳明有云:"知行合一"。
知识点回顾:
print()
函数打印字符串字面量。- 字符串中引号的嵌套:当字符串本身需要包含引号时,可以使用不同类型的引号(单引号包裹双引号,或双引号包裹单引号)或转义字符。
练习6:名言2
重复练习5,但用变量 famous_person
表示名人的姓名,再创建要显示的消息并将其赋给变量 message
,然后打印这条消息。
# 将名人的姓名赋给变量 famous_person
famous_person = "王阳明"
# 使用 f-string 创建包含名人姓名和名言的消息,并将其赋给变量 message
message = f'{famous_person}有云:"知行合一"。'
# 打印变量 message 的内容
print(message)
王阳明有云:"知行合一"。
知识点回顾:
- 变量的使用:用变量存储数据(如名人的名字),使代码更易读和维护。
- f-string:再次用于构建包含变量的字符串。
练习7:删除人名中的空白
用变量表示一个人的名字,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合 "\t "
和 "\n"
各一次。
打印这个人名,显示其开头和末尾的空白。然后,分别使用函数 lstrip()
、rstrip()
和 strip()
对人名进行处理,并将结果打印出来。
# 定义一个包含前后空白字符(制表符\t 和 换行符\n)的字符串
name = "\t张三\n\t"
# 打印原始字符串,展示其包含的空白
print("原始字符串:")
print(f"'{name}'") # 使用引号包裹以便看清空白
# 打印去掉字符串左边空白的字符串
print("\n使用 lstrip() 去除左边空白:")
print(f"'{name.lstrip()}'")
# 打印去掉字符串右边空白的字符串
print("\n使用 rstrip() 去除右边空白:")
print(f"'{name.rstrip()}'")
# 打印去掉字符串左右两边空白的字符串
print("\n使用 strip() 去除两边空白:")
print(f"'{name.strip()}'")
原始字符串:
' 张三
'
使用 lstrip() 去除左边空白:
'张三
'
使用 rstrip() 去除右边空白:
' 张三'
使用 strip() 去除两边空白:
'张三'
(注意:实际输出中 \n
会导致换行,\t
会产生制表符间距,上面的 plain
块为了清晰展示空白,用字符形式表达,实际运行结果中空白是不可见的。为了更清晰,我在代码中用引号包裹了输出。)
知识点回顾:
- 空白字符:
\t
(制表符),\n
(换行符)。 - 字符串方法:
.lstrip()
: 移除字符串左侧的空白字符(或指定字符)。.rstrip()
: 移除字符串右侧的空白字符(或指定字符)。.strip()
: 移除字符串两侧的空白字符(或指定字符)。
练习8:文件扩展名
Python 提供了 removesuffix()
方法,其工作原理与 removeprefix()
很像。请将值 'python_notes.txt'
赋给变量 filename
,再使用 removesuffix()
方法来显示不包含扩展名的文件名,就像文件浏览器所做的那样。
filename = "python_notes.txt"
# 使用 removesuffix() 方法移除指定的后缀 ".txt"
# 这个方法是 Python 3.9 版本引入的
file_without_extension = filename.removesuffix(".txt")
print(file_without_extension)
python_notes
知识点回顾:
- 字符串方法
.removesuffix(suffix)
:如果字符串以指定的suffix
结尾,则返回移除该后缀的新字符串;否则返回原始字符串。 (Python 3.9+) - (类似地,
.removeprefix(prefix)
移除前缀。)
练习9:数字8
编写4个表达式,分别使用加法、减法、乘法和除法运算,但结果都是数字8。为了使用函数调用 print()
来显示结果,务必将这些表达式用括号括起来。也就是说,你应该编写4行类似于这样的代码:
print(5+3)
输出应为4行,其中每行都只包含数字8。
# 加法运算
print(4+4)
# 减法运算
print(12-4)
# 乘法运算
print(4*2)
# 除法运算,结果是浮点数,使用 int() 转换为整数
print(int(16/2))
8
8
8
8
知识点回顾:
- 基本算术运算符:
+
(加法),-
(减法),*
(乘法),/
(除法)。 - 除法运算
/
:在 Python 3.x 中,除法运算结果总是浮点数。 int()
函数:将一个数值或字符串转换为整数。- 表达式求值:
print()
函数会先计算括号内的表达式,然后打印结果。
练习10:最喜欢的数
用一个变量来表示你最喜欢的数,再使用这个变量创建一条消息,指出你最喜欢的数是什么,然后将这条消息打印出来。
# 用变量存储最喜欢的数字
number = 666
# 使用 f-string 创建包含这个数字的消息
message = f"我最喜欢的数字是{number}!"
# 打印消息
print(message)
我最喜欢的数字是666!
知识点回顾:
- 变量存储数字类型数据。
- f-string:可以将数字类型的变量直接嵌入字符串中,Python 会自动将其转换为字符串形式。