1.类型 2.名称 3.值
a = 60
print(a)
b = 40
print(b)
1.这里的变量的名称就是a, 变量的值是60, 60是int类型(整数类型)
2.定义的一个变量,变量的名称是b,变量的值是40,40是int类型(整数类型)
当代码执行后,变量的值是存在计算机的内存的
含义:内存是计算机的重要部件,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储交换的数据,它是外存于CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行。
只能下定义,再使用的原则,否则程序会报错;
例如代码如下:
print(a)
a = 30
代码运行如下
File "E:\PythonProject2\PythonProject\01_var_example.py", line 1, in <module>
print(a) NameError: name 'a' is not defined
**程序运行之后就会报not defined 的错误,所以使用变量必须有先后原则。
现在我来定义四个变量,看程序输出结果:
第一种方式:
代码演示:
#演示记录人的信息并输出的程序
name = "tom" #字符串
age = 20 #整形
score = 90.4 #浮点型(小数)
gender = "男" #字符串
#输出信息
print("个人信息如下")
print(name)
print(age)
print(gender)
print(score)
运代码运行如下:
个人信息如下
tom
20
男
90.4
进程已结束,退出代码为0
由上述程序可见,已经定义了四个变量,输出的结果分别是变量的值。
所以变量相当于内存中的一个数据存储空间的表示。
第二种定义变量的方式:
代码实现:
#演示记录人的信息并输出的程序
name = "tom" #字符串
age = 20 #整形
score = 90.4 #浮点型(小数)
gender = "男" #字符串
#输出信息
#print("个人信息如下")
#print(name)
#print(age)
#print(gender)
#print(score)
print("个人信息如下:",name,age,gender,score)
代码运行如下:
个人信息如下: tom 20 男 90.4
上述两种方式都可以进行变量的定义和输出,唯一的区别就是输出所展现的方式不一样,这里还要注意的是,代码所用的引号和逗号必须使用英文字符进行表示。否则程序会报错。
1.%操作符
2.format()函数
3. f-strings
代码实现如下:
#关于格式化输出
#定义变量
age = 50
score = 77.5
gender = '男'
name = '杰克'
print("个人信息:%s-%d-%s-%.2f" %(name,age,gender,score))
代码运行:
个人信息:杰克-50-男-77.50
进程已结束,退出代码为 0
占位符替换*:
字符串中的 %s
、%d
、%.2f
等是占位符,%
操作符会将右侧元组中的值按顺序替换到这些位置。也就是说家里%,就将原来的输出位置顺序age,score,gender,name替换成name,age,gender,score
%s
:将变量转为字符串(适用任意类型,自动转换)。%d
:将变量格式化为十进制整数。%f
:将变量格式化为浮点数,%.2f
表示保留两位小数。%x
十六进制)也可按需使用。print("个人信息:%s-%d-%s-%.2f" % (name, age, gender, score))
%s
→ name
(字符串 “杰克”)%d
→ age
(整数 50)%s
→ gender
(字符串 “男”)%.2f
→ score
(浮点数 77.5,格式化为 77.50)%d
对应整数,否则可能报错)。**
**
格式符的字母通常是英文单词的首字母缩写或类型标识,直接关联目标数据类型:
格式符 | 含义 | 对应类型 | 示例 |
---|---|---|---|
%s |
字符串 (String) | 任意对象(自动调用 str() ) |
"Name: %s" % "Tom" |
%d |
十进制整数 (Decimal) | 整数(或可转为整数的对象) | "Age: %d" % 25 |
%f |
浮点数 (Float) | 浮点数或可转为浮点数的对象 | "Price: %.2f" % 3.1415 |
%x |
十六进制整数 (heX) | 整数 | "Hex: %x" % 255 → ff |
%o |
八进制整数 (Octal) | 整数 | "Octal: %o" % 64 → 100 |
%s
(字符串)
s
是 String 的首字母,表示将变量转换为字符串(即使传入非字符串类型,也会调用 str()
自动转换)。
例如:"%s" % 3.14
→ "3.14"
(数值被转为字符串)。
%d
(整数)
d
是 Decimal(十进制)的缩写,表示将变量格式化为十进制整数。若传入浮点数,会直接截断小数部分。
例如:"%d" % 3.99
→ "3"
(不会四舍五入)。
%f
(浮点数)
f
是 Float 的首字母,表示将变量格式化为浮点数。可通过 %.2f
控制小数位数。
例如:"%.2f" % 3.1415
→ "3.14"
。
%s
最灵活:可接受任意类型(如整数、浮点数、对象),自动调用 str()
转为字符串。
print("%s" % 50) # 输出 "50"(整数→字符串)
print("%s" % 3.14) # 输出 "3.14"(浮点数→字符串)
%d
和 %f
严格:要求变量必须是整数或浮点数(或可隐式转换的类型),否则会报错。
print("%d" % "50") # 报错!字符串无法直接转为整数
print("%d" % 50.5) # 输出 "50"(浮点数截断为整数)
除了字母,格式符还支持更复杂的格式控制(通过添加符号和数字):
%10s
:字符串宽度为 10,右对齐(不足补空格)。%-5d
:整数宽度为 5,左对齐。%06d
:整数宽度为 6,不足补零(如 42
→ 000042
)。示例:
print("Name: %10s, Age: %05d" % ("Tom", 25))
# 输出:Name: Tom, Age: 00025
代码如下:
#定义变量
age = 50
score = 77.5
gender = '男'
name = '杰克'
print("个人信息:{} {} {}".format(name,age,gender))
输出:
个人信息:杰克 50 男
format()函数在这里的作用:format()将变量name,age,gender按顺序插入字符串的{}占位符位置,生成格式化后的字符串。
format()
的核心作用{}
标记需要插入变量的位置。%s
、%d
),自动将变量转为字符串。# 示例中无需区分字符串、整数,直接替换
"{} {} {}".format("字符串", 123, 3.14) → "字符串 123 3.14"
format()
的常见用法默认按参数顺序填充:
print("{}的年龄是{}".format("张三", 25)) # 输出:张三的年龄是25
{0}
, {1}
控制参数顺序,支持重复使用:print("{1}的分数是{0}, {1}的年龄是{2}".format(90, "李四", 30))
# 输出:李四的分数是90, 李四的年龄是30
print("姓名:{name}, 年龄:{age}".format(name="王五", age=40))
# 输出:姓名:王五, 年龄:40
print("{0}的性别是{gender}".format("赵六", gender="女"))
# 输出:赵六的性别是女
f-strings的使用
代码实现如下:
age = 50
score = 77.5
gender = '男'
name = '杰克'
print(f"个人信息:{name} {age} {score} {gender}")
输出:
个人信息:杰克 50 77.5 男
此段代码中f-string的作用:
f-strings 功能强大,支持复杂操作,以下是常见扩展用法:
可以直接在 {}
内写表达式:
print(f"总分:{score * 2}") # 输出:总分:155.0
print(f"姓名大写:{name.upper()}") # 输出:姓名大写:杰克(假设 name 是英文)
控制小数位数、补零、对齐等:
print(f"分数:{score:.1f}") # 保留1位小数 → 分数:77.5
print(f"编号:{5:03d}") # 补零到3位 → 编号:005
控制字符串对齐和宽度:
print(f"姓名:{name:<10}") # 左对齐,宽度10字符 → 姓名:杰克
print(f"分数:{score:>10}") # 右对齐,宽度10字符 → 分数: 77.5
直接访问字典的值:
person = {"name": "杰克", "age": 50}
print(f"信息:{person['name']} {person['age']}") # 输出:信息:杰克 50
输出单个 {
或 }
:
print(f"{{name}}的值是{name}") # 输出:{name}的值是杰克
结合 datetime
模块:
from datetime import datetime
now = datetime.now()
print(f"当前时间:{now:%Y-%m-%d %H:%M}") # 输出:当前时间:2023-10-05 14:30
在程序中“+”的使用原则:
1.当左右两边都是数值型时,则做加法运算
2.当左右两边都是字符串,则做拼接运算
实例代码如下
#程序中+的使用
name = "King" #这是字符串
score = 40.5 #这是数值
num1 = 10 #这是数值
str1 = "OK" #这是字符串
print(score + num1)
print(name + str1)
print(score + 90)
print(name +"hi")
print("100"+"98")
print(34.6 + 100)
运行输出:
50.5
KingOK
130.5
Kinghi
10098
134.6
进程已结束,退出代码为 0
从以上代码可以看出,都是数值时则相加,都是字符串时,则拼接。那么现在就有另一个问题,如果在“+”左右是数值和字符串,又会如何呢,是否可以这样操作。
代码实现如下
score = 30
print("100"+30)
输出:
print("100"+30)
TypeError: can only concatenate str (not "int") to str
此时代码会报错,在python中在你的代码中,“100” 是一个字符串,而 30 是一个整数。Python 不允许直接将字符串和数值相加,因为它们的类型不兼容,所以会抛出 TypeError。如果想要拼接成功,则需要将两边的数值类型转换成同一类型即可。
score = 30
print("100" + str(score))
输出:10030
score = 30
print(int("100") + score)
输出:130
拓展:+ 的其他用法
列表拼接:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(list1 + list2) # 输出:[1, 2, 3, 4, 5, 6]
元组合并:
tuple1 = (1, 2)
tuple2 = (3, 4)
print(tuple1 + tuple2)
输出:(1, 2, 3, 4)
这就是“+”在程序中的一些基本用法,还有其它的用法后面再进行拓展。