Python训练营Day 2实战指南
day1内容(复习并完善)
了解变量和输出
知识点:
-
变量的命名和定义
-
debug工具的使用(pycharm和vscode)
-
print函数
题目一:
定义三个变量 a, b, c,并分别将整数 1, 2, 3 赋值给它们。然后,使用 print() 函数将每个变量的值单独打印出来,每个值占一行。
输入:
a=1
b=2
c=3
print(a)
print(b)
print(c)
输出:
1
2
3
进阶思考:
如何只用 一个 print() 函数调用就实现上面分三行的输出效果?(提示:换行符 \n)
输入:
a,b,c=1,2,3
print(f"{a}\n{b}\n{c}")
输出:
1
2
3
tips:首先,重点肯定是运用换行符\n,它可以使一个 print() 函数调用就实现分三行的输出的效果,其次,注意到这里使用到了“f”,这个就是 f-string ,现在先留个悬念,接下来会详细阐述。
格式化字符串
题目二:
创建两个变量:name 存储你的名字(字符串,例如 "小霖"),city 存储你所在的城市(字符串,例如 "无锡")。使用 f-string 将这两个变量组合成一句话并打印出来。
输入:
name = "小霖"
city = "无锡"
print(f"我的名字是{name},我住在{city}。")
输出:
我的名字是小霖,我住在无锡。
tips:好的,现在我们来解释以下f-string。
在 Python 里,字符串前面的 f 用于创建 f-string(格式化字符串字面值),这是 Python 3.6 及以后版本引入的一种字符串格式化方法。
f-string 能让你在字符串里直接嵌入表达式,这些表达式会在运行时被求值并替换到字符串中。使用 f-string 可以让字符串格式化更简洁、易读。
上述代码中,f 表明这是一个 f-string。 {name} 和 {city} 是嵌入的表达式,Python 会在运行时把它们替换成对应的变量值。也就是说, {name} 会被替换成 "小霖" , {city} 会被替换成 "无锡" ,最终打印出 我的名字是小霖,我住在无锡。 。
它的优点:一个是简洁性,相比传统的字符串格式化方法(如 % 格式化或 str.format() ),f-string 语法更简洁;还有一个是易读性,变量名直接嵌入在字符串中,能清晰看出字符串与变量的对应关系。
我们看看用传统的 str.format() 方法来完成这道题目怎么操作:(实例对比)
输入:
name = "小霖"
city = "无锡"
print("我的名字是{},我住在{}。".format(name, city))
对照f-string 方法,可以看到,f-string 代码更加简洁直观。
进阶思考:
如果想在输出的姓名两边加上引号,例如 姓名: "小霖", 城市: 无锡,f-string 语句应该怎么写?
输入:
name="小霖"
city="无锡"
print(f"姓名:\"{name}\",城市:{city}")
输出:
姓名:"小霖",城市:无锡
tips:当字符串使用双引号包裹时,若要在字符串内显示双引号,可使用反斜杠 \ 对其进行转义。这道题目中,\" 表示在字符串里显示一个双引号,Python 解释器会将 \" 解析为普通的双引号字符。
只用一个 print() 和 f-string,如何让姓名和城市分两行输出?
输入:
name="小霖"
city="无锡"
print(f"姓名:{name}\n城市:{city}")
输出:
姓名:小霖
城市:无锡
变量的基础运算
题目三:
定义两个整数变量,num1 赋值为 20,num2 赋值为 8。计算这两个变量的和,并将结果存储在一个新的变量 a 中;计算这两个变量的商,叫做b;计算这两个变量的余数,叫做c。然后,使用 f-string 打印出类似 “20 加 8 的结果是:28” 的信息,分成三行打印。
输入:
# 定义两个整数变量
num1 = 20
num2 = 8
# 计算和、商、余数并存储在对应的变量中
a = num1 + num2
b = num1 / num2
c = num1 % num2
# 使用 f-string 分三行打印结果
print(f"{num1} 加 {num2} 的结果是:{a}")
print(f"{num1} 除以 {num2} 的商是:{b}")
print(f"{num1} 除以 {num2} 的余数是:{c}")
输出:
20 加 8 的结果是:28
20 除以 8 的商是:2.5
20 除以 8 的余数是:4
题目四:
定义两个浮点数变量,price 赋值为 19.9,discount 赋值为 0.8 (表示 8 折)。计算折扣后的价格,并将结果存储在变量 final_price 中;计算节省了多少钱,存储在变量 saved_amount 中。然后,使用 f-string 分两行打印出类似以下格式的信息:
最终价格是: 15.92
节省金额是: 3.98
输入:
# 定义两个浮点数变量
price = 19.9
discount = 0.8
# 计算折扣后的价格和节省的金额
final_price = price * discount
saved_amount = price - final_price
# 使用 f-string 分两行打印结果
print(f"最终价格是: {final_price:.2f}")
print(f"节省金额是: {saved_amount:.2f}")
输出:
最终价格是: 15.92
节省金额是: 3.98
tips:在 Python 里, :.2f 是一种格式化规范,常应用于 f-string、 str.format() 方法以及旧式的 % 格式化语法中,主要用于对浮点数进行格式化输出,限定输出结果保留两位小数。
day2内容
字符串的操作
题目一:
定义两个字符串变量,str1 赋值为 “Hello”,str2 赋值为 “Python”。将这两个字符串拼接起来(中间加一个空格),并将结果存储在变量 greeting 中;计算 greeting 字符串的长度,存储在变量 length 中;获取 greeting 字符串的第一个字符,存储在变量 first_char 中。然后,使用 f-string 分三行打印出类似以下格式的信息:
拼接结果: Hello Python
字符串长度: 12
第一个字符: H
第二个字符:e
最后一个字符是:n
输入:
# 定义字符串变量
str1 = "Hello"
str2 = "Python"
# 拼接字符串
greeting = str1 + " " + str2
# 计算字符串长度
length = len(greeting)
# 获取第一个、第二个和最后一个字符
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
tips:
这里使用 + 运算符来拼接字符串。 str1 + " " + str2 表示先把 str1 的值 "Hello" 取出来,接着添加一个空格 " " ,最后再加上 str2 的值 "Python" ,拼接后的结果 "Hello Python" 被存储在变量 greeting 中。
len() 是 Python 的内置函数,用于返回对象的长度或者元素个数。当传入的对象是字符串时,它会返回字符串中字符的数量。这里将 greeting 字符串的长度存储在变量 length 中, "Hello Python" 的长度是 12。
在 Python 中,字符串是一个序列,你可以通过索引来访问字符串中的单个字符。索引从 0 开始,所以 greeting[0] 表示获取 greeting 字符串的第一个字符,即 "H" ; greeting[1] 表示获取第二个字符,即 "e" 。
同时,Python 支持负索引, -1 表示最后一个元素, -2 表示倒数第二个元素,依此类推。所以 greeting[-1] 表示获取 greeting 字符串的最后一个字符,即 "n" 。
比较运算
题目二:
定义两个整数变量,score_a 赋值为 75,score_b 赋值为 90。比较 score_a 是否大于 score_b,将比较结果(布尔值)存储在变量 is_a_higher 中;比较 score_a 是否小于等于 score_b,将结果存储在变量 is_a_lower_or_equal 中;比较 score_a 是否不等于 score_b,将结果存储在变量 is_different 中。然后,使用 f-string 分三行打印出类似以下格式的信息:
75 是否大于 90: False
75 是否小于等于 90: True
75 是否不等于 90: True
输入:
# 定义整数变量
score_a = 75
score_b = 90
# 进行比较操作
is_a_higher = score_a > score_b
is_a_lower_or_equal = score_a <= score_b
is_different = score_a != score_b
# 使用 f-string 打印结果
print(f"{score_a} 是否大于 {score_b}: {is_a_higher}")
print(f"{score_a} 是否小于等于 {score_b}: {is_a_lower_or_equal}")
print(f"{score_a} 是否不等于 {score_b}: {is_different}")
输出:
75 是否大于 90: False
75 是否小于等于 90: True
75 是否不等于 90: True
tips:
is_a_higher = score_a > score_b :使用大于运算符 > 比较 score_a 是否大于 score_b 。比较结果是一个布尔值( True 或 False ),并将其存储在变量 is_a_higher 中。由于 75 不大于 90 ,所以 is_a_higher 的值为 False 。
is_a_lower_or_equal = score_a <= score_b :使用小于等于运算符 <= 比较 score_a 是否小于或等于 score_b 。比较结果存储在变量 is_a_lower_or_equal 中。因为 75 小于 90 ,所以 is_a_lower_or_equal 的值为 True 。
is_different = score_a != score_b :使用不等于运算符 != 比较 score_a 是否不等于 score_b 。比较结果存储在变量 is_different 中。由于 75 不等于 90 ,所以 is_different 的值为 True 。
@浙大疏锦行
作者:低维歌者