#变量和输出函数
1.变量的命名和定义
在Python里,变量命名需要遵循以下规则:
- 变量名只能包含字母、数字和下划线( _ )。
- 变量名不能以数字开头。
- 变量名不能是Python的关键字(像 if 、 else 、 for 等)。
- 变量名区分大小写, myVar 和 myvar 是不同的变量。
常见的命名方法:蛇形命名法和驼峰命名法。
在Python中,定义变量很简单,只需给变量赋值即可,无需提前声明变量类型。
2.debug工具的使用
debug的核心就是设置断点,然后进行调试。
断点:断点是在代码中设置的特定位置,当程序执行到该位置时会暂停运行,这样你就可以查看程序在这一时刻的状态,比如变量的值、程序的执行流程等。
3.print函数
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- *objects :这是一个可变参数,表示可以传入任意数量的对象,这些对象会按顺序输出。对象之间会用 sep 参数指定的分隔符隔开。
- sep :分隔符参数,用于指定多个对象之间的分隔符号,默认值是一个空格 ' ' 。
- end :结束符参数,指定输出内容末尾的字符,默认值是换行符 '\n' ,也就是输出完内容后会自动换行。
- file :指定输出的目标文件对象,默认是 sys.stdout ,即标准输出设备(控制台)。你也能将输出重定向到文件。
- flush :布尔值参数,指定是否立即刷新输出缓冲区,默认值是 False 。
【例题1】定义三个变量 a, b, c,并分别将整数 1, 2, 3 赋值给它们。然后,使用 print() 函数将每个变量的值单独打印出来,每个值占一行。
a=1
b=2
c=3
print(a)
print(b)
print(c)
#使用一个print函数
print(a,'\n',b,'\n',c)
#但是此时输出结果并没有对齐
#1
# 1
# 1
print(f"{a}\n{b}\n{c}")
#使用f-string 结合换行符可以解决这一问题
print(a,b,c,sep='\n')
#格式化字符串
f-string(一种字符串格式化方法)
基本语法:在字符串前加上 f 或 F 前缀,然后在字符串里使用花括号 {} 来包含要插入的变量或表达式。
【例子】
name = "小明"
city = "北京"
print(f"我的名字是{name},我住在{city}。")
#输出结果为 我的名字是小明,我住在北京。
在 f-string 语法里,若内部输出内容包含双引号,有以下几种处理方式:
- 使用单引号包裹 f-string(最为常用)
name = "小明" city = "北京" print(f'姓名: "{name}", 城市: {city}')
- 使用转义字符
print(f"姓名: \"{name}\", 城市: {city}")
print(f'姓名: "{name}"\n城市: {city}')
#输出结果为:
#姓名:小明
#城市:北京
# 变量的基础运算
在 Python 里,变量的基础运算主要涵盖算术运算、比较运算、逻辑运算、赋值运算等。本节主要介绍算术运算。算术运算用于数值类型的变量,像整数、浮点数等
a = 5
b = 3
print(a + b) # 输出 8
print(a - b) # 输出 2
print(a * b) # 输出 15
print(a / b) # 输出约 1.67
print(a // b) # 输出 1 (整除取整数部分)
print(a % b) # 输出 2
print(a ** b) # 输出 125 (幂运算)
【习题1】 定义两个整数变量,num1 赋值为 20,num2 赋值为 8。计算这两个变量的和,并将结果存储在一个新的变量 a 中;计算这两个变量的商,叫做b;计算这两个变量的余数,叫做c。然后,使用 f-string 打印出类似 “20 加 8 的结果是:28” 的信息,分成三行打印。
【习题2】定义两个浮点数变量,price 赋值为 19.9,discount 赋值为 0.8 (表示 8 折)。计算折扣后的价格,并将结果存储在变量 final_price 中;计算节省了多少钱,存储在变量 saved_amount 中。然后,使用 f-string 分两行打印出类似以下格式的信息:
最终价格是: 15.92
节省金额是: 3.98
f-string 说明符
说明符
- {var} (var 并非 Python 里的特殊关键字或者内置函数,它是一个通用的变量名占位符,代表任意的变量。联系:pass占位符,暂时不想编写函数的具体内容时可以使用pass占位。)
- 简单替换 name = 'World'; f'Hello, {name}' 结果为 'Hello, World'
- {var:d}
- 整数格式化 age = 25; f'Age: {age:d}' 结果为 'Age: 25'
- {var:f}
- 浮点数格式化 price = 3.14159; f'Price: {price:.2f}' 结果为 'Price: 3.14'
- {var:x}
- 科学计数法格式化(小写 e )
- num = 10000; f'Scientific: {num:e}' 结果为 'Scientific: 1.000000e+04' {var:E}
- 科学计数法格式化(大写 E )
- num = 10000; f'Scientific: {num:E}' 结果为 'Scientific: 1.000000E+04' {var:,}
- 千位分隔符
- num = 1000000; f'Number: {num:,}' 结果为 'Number: 1,000,000'
【习题1答案】
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}")
【习题2答案】
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}")
print(f"最终价格是: {final_price:.2f}\n节省金额是: {saved_amount:.2f}")
用上print函数的内部参数sep,问题出在哪呢?
print(f"最终价格是: {final_price:.2f},节省金额是: {saved_amount:.2f},sep='\n'")
错误原因:把 sep='\n' 写在了字符串里面,这会让它被当成字符串的一部分,而不是 print 函数的参数。
正确写法:
# 修正后的 print 语句,将 sep 参数放在正确的位置 print(f"最终价格是: {final_price:.2f}", f"节省金额是: {saved_amount:.2f}", sep='\n')
总结:
@浙大疏锦行