一、字符串的三种定义
1、单引号定义:name = '程序员'
2、双引号定义:name = "程序员"
3、三引号定义:name = """程序员"""
# 单引号定义法
name = '程序员'
print(type(name), name)
# 双引号定义法
name = "程序员"
print(type(name), name)
# 三引号定义法,写法和多行注释是一样的,用变量接收就是字符串,不用变量接收就是注释
name = """
我是
一名
程序员
"""
print(type(name), name)
#字符串的引号嵌套
# 第一种:单引号定义法,内含双引号
name = '"黑马程序员"'
print(name)
# 第二种:双引号定义法,内含单引号
name = "'黑马程序员'"
print(name)
# 第三种:使用转义字符(\)来将引号解除效用,变成普通字符串
name = "\"黑马程序员\""
print(name)
name = '\'黑马程序员\''
print(name)
二、字符串拼接
# 字符串拼接
# 字符串字面量之间的拼接
print("学IT来黑马" + "月薪过万")
# 字符串字面量和字符串变量的拼接
name = "黑马程序员"
print("我的名字是:" + name + ",我可以教大家IT技能")
a = "521"
b = "1314"
print(a + b)
*注意:无法和非字符串类型进行拼接
三、字符串格式化
字符串格式化的语法:"%占位符" % 变量。
可以支持拼接其他类型,通过占位的方式来完成拼接。
#字符串格式化
name = "黑马程序员"
message = "学IT就来:%s" % name
print(message)
结果
学IT就来:黑马程序员
其中:%表示:我要占位;s表示:将变量变成字符串放入占位的地方。
*注意:多个变量占位,变量要用括号括起来,并按照占位的顺序填入。
tel = 88888888
address = "北京"
message = "我的家在%s;我的电话号码是:%s。" % (address, tel)
print(message)
Python中,支持非常多的数据类型占位,最常用的有三类:%s(将内容转换成字符串,放入占位位置)、%d(将内容转换成整数,放入占位位置)、%f(将内容转换成浮点型,放入占位位置)。
name = "传智播客"
set_up_year = 2006
stock_price = 19.99
message = "我是:%s,我成立于:%d年,我今天的股价是:%s" % (name, set_up_year, stock_price)
print(message)
结果
我是:传智播客,我成立于:2006年,我今天的股价是:19.990000
四、格式化的精度控制
使用辅助符号"m.n"来控制数据的宽度和精度。
m:控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效;
.n:控制小数点精度,要求是数字,会进行小数的四舍五入。
例如:
· %5d:表示将整数的宽度控制在5位,如数字11,被设置位5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。
· %7.2f:表示将宽度控制为7,将小数点精度设置为2位,小数点和小数部分也算入宽度计算。如数字11.345设置了%7.2f后,就会变成:[空格][空格]11.35。两个空格补足宽度,小数部分限制2位精度后,四舍五入为.35。
· %.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置为%.2f后,就会变成:11.35。
"""
1、精度控制的语法是:
m.n的形式控制,如%5d、%7.2f、%.2f
m和.n均可省略
2、如果m比数字本身宽度还小,m不生效
3、.n会对小数部分做精度限制,同时:会对小数部分做四舍五入
"""
num1 = 11
num2 = 11.345
print("数字11宽度限制5,结果是:%5d" % num1)
print("数字11宽度限制1,结果是:%1d" % num1)
print("数字11.345宽度限制7,小数点精度2,结果是:%7.2f" % num2)
print("数字11.345宽度不限制,小数点精度2,结果是:%.2f" % num2)
五、字符串格式化方式2
通过语法:f"内容{变量}"的格式来快速格式化。
*注意:此方法不限数据类型,不做精度控制,原样输出。适合于对精度没有要求的时候快速使用。
# 字符串格式化 - 快速写法
# 通过语法:f"内容{变量}"的格式来快速格式化
name = "传智博客"
set_up_year = 2006
stock_price = 19.99
# f:format的首字母
print(f"我是{name},我成立于:{set_up_year}年,我今天的股票价格是:{stock_price}元")
六、对表达式进行格式化
1、对于字符串格式化,可以直接格式化一个表达式。
2、在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码。
3、如何格式化表达式:f"{表达式}"、"%s\%d\%f" % (表达式、表达式、表达式)
# 字符串格式化 - 表达式的格式化
print("1 * 1的结果是:%d" % (1 * 1))
print(f"2 * 3的结果是:{2 * 3}")
print("字符串在Python中的类型是:%s" % type("字符串"))
七、字符串格式化练习题 - 股票计算小程序
# 股票计算小程序
# 公司名
name = "传智播客"
# 当前股价
stock_price = 19.99
# 股票代码
stock_code = "003032" # 数字不能直接以0开头,所以使用字符串比较合适
# 股票每日增长系数
stock_price_daily_growth_factor = 1.2
# 增长天数
growth_days = 7
# 计算股价:当前股价*增长系数**增长天数
current_stock_price = stock_price * stock_price_daily_growth_factor ** growth_days
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
print("每日增长系数是:%.1f,经过%d天增长后,股价达到了:%.2f" % (stock_price_daily_growth_factor, growth_days, current_stock_price))