字符串拓展
一、字符串的三种定义方式
- 字符串在python中有多种定义形式
# 单引号定义法name='黑马程序员'print(type(name))# 双引号定义法name="黑马程序员"print(type(name))# 三引号定义法,写法和多行注释是一样的name=""" 我是 黑马 程序员 """print(type(name))思考:如果我想要定义的字符串本身,是包含:单引号、双引号自身呢?如何写?
- 单引号定义法,可以内含双引号
- 双引号定义法,可以内含单引号
- 可以使用转移字符(\)来将引号解除效用,变成普通字符串
# 在字符串内,包含双引号name='"黑马程序员"'print(name)# 在字符串内包含单引号name="'黑马程序员'"print(name)#使用转义字符\解除引号的效用name="\"黑马程序员\""print(name)name='\'黑马程序员\''print(name)总结
1.字符串的三种定义方式:
- 单引号方式
- 双引号方式
- 三引号方式
2.引号的嵌套
- 可以使用:\来进行转义
- 单引号内可以写双引号或双引号内可以写单引号
二、字符串的拼接
# 字符串字面量之间的拼接print("学it来黑马"+"月薪过万")# 字符串字面量和字符串变量的拼接name="黑马程序员"address="建材东路9号院"tel=4006189000print("我是:"+name+",我的地址是:"+address+",我的电话是:"+tel)总结
三、字符串格式化
# 通过占位的形式,完成拼接name="黑马程序员"message="学it来:%s"%nameprint(message)# 通过占位的形式,完成数字和字符串的拼接class_num=57avg_salary=16781message="python大数据学科,北京%s,毕业平均工资:%s"%(class_num,avg_salary)print(message)name="传智博客"set_year=2006stock_price=19.99message="%s,成立于:%d,我今天的股价是:%f"%(name,set_year,stock_price)print(message)总结
1.字符串格式化的语法
“%占位符”%变量
2.常用的占位符有哪三个?
- 字符串 %s
- 整数 %d
- 浮点数 %f
四、字符串格式化的精度控制
字符串格式化
数字精度控制
我们可以使用辅助符号"m,n"来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
- .n,控制小数点精度,要求是数字,会进行小数的四舍五入
示例
- %5d:标识将整数的宽度控制在5位,就会变成:【空格】【空格】【空格】11,用三个空格补足宽度
- %5.2:表示将宽度控制为5,小数点精度设置为2
(小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f后,结果是:【空格】【空格】11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为:.35)
num1=11num2=11.345print("数字11宽度限制5,结果是:%5d"%num1)print("数字11宽度限制1,结果是:%1d"%num1)print("数字11.345宽度限制7,小数精度2,结果是:%7.2f"%num2)print("数字11.345不限制,结果是:%.2f"%num2)总结
五、字符串格式化-快速写法
""" 演示第二种字符串格式化的方式:f"{占位}" """name="传智播客"set_up_year=2006stock_price=19.99# f: formatprint(f"我是{name},我成立于:{set_up_year}年,我今天的股价是:{stock_price}")总结
六、对表达式进行格式化
print("1*1的结果是:%d"%(1*1))print(f"1*2的结果是:{1*2}")print("字符串在prthon中的类型名是:%s"%type("字符串"))总结
练习
# 定义变量name="传智播客"stock_price=19.99stock_code="003032"# 股票 价格 每日 增长 因子stock_price_daily_growth_factor=1.2growth_days=7finally_stock_price=stock_price*stock_price_daily_growth_factor**growth_daysprint(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price})")print("每日增长系数:%.1f,经过%d天的增长后,股价达到了:%.2f"%(stock_price_daily_growth_factor,growth_days,finally_stock_price))