复习Python的Day4_print ("if i add %d,%d,and %d i get %d" % my_age, -程序员宅基地

技术标签: 格式化  python  编程语言和语言哲学  

复习Python的Day4

image

习题 5: 更多的变量和打印

每一次使用” “把一些文本引用起来,你就建立了一个字符串,的的确确,字符串是非常好用的东西。

字符串是程序将信息展示给人的方式。你可以打印它们,可以将它们写入文件,还可以将它们发送给网站服务器,很多事情都是通过字符串交流实现的。

Python中使用’ ‘或” “来表示字符串,字符串可以包含格式化字符%s,用法已经练习过:将格式化的变量放到字符串中,其后紧跟百分号%,再写变量名即可。多变量要使用括号变量用逗号隔开。学会使用字符串和格式化字符可以节约时间。

本节练习重点:
学会如何创建包含变量内容的字符串。

使用专门的格式和语法把变量的内容放到字符串里,相当于来告诉 python:“嘿,这是一个格式化字符串,把这些变量放到那几个位置。”

习题代码

my_name = 'Zed A. Shaw'
my_age = 35
my_height = 74
my_weight = 180
my_eyes = 'blue'
my_teeth = 'White'
my_hair = 'Brown'

print "Let's talk about %s." % my_name
print "He's %d inches tall." % my_height
print "He's %d pounds heavy." % my_weight
print "Actually that's not too heavy."
print "He's got %s eyes and %s hair." % (my_eyes, my_hair)
print "His teeth are usually %s depending on the coffee." % my_teeth
print "If I add %d, %d, and %d I get %d." % (my_age, my_height, my_weight, my_age + my_height + my_weight)

加分习题

  1. 在网上搜索所有的 Python 格式化字符。(已做)
  2. 试着使用变量将英寸和磅转换成厘米和千克。不要直接键入答案。使用 Python的计算功能来完成。
# transform.py
my_height_ft = 74 
my_height_cm = 74 * 2.540005
my_weight_lb = 180
my_weight_kg = 180 * 0.454

print "I'm %d cm tall." % my_height_cm
print "I'm %d kg heavy." % my_weight_kg

格式化操作符(%)

“%”是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%)。

下面整理了一下Python中字符串格式化符合:

这里我的整理是按照常用程度来的,由高到低。

格式化符号 说明
%s 优先用str()函数进行字符串转换
%d / %i 转成有符号十进制数
%e / %E 转成科学计数法(e / E控制输出e / E)
%f / %F 转成浮点数(小数部分自然截断)
%g / %G %e和%f / %E和%F 的简写((根据值的大小采用%e或%f/%E 或%F)
%% 输出% (格式化字符串里面包括百分号,那么必须使用%%)
%r 优先用repr()函数进行字符串转换
%c 转换成字符(ASCII 码值,或者长度为一的字符串)( %c requires int or char)
%n 存储输出字符的数量放进参数列表的下一个变量中
%o 转成无符号八进制数
%p 指针(用十六进制打印值的内存地址)
%u 转成无符号十进制数
%x / %X 转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)

······

这里列出的格式化字符都比较简单。
唯一想要强调一下的就是”%s”和”%r”的差别。

接下来,我用一些实例来测试了一下这些格式化字符。

# 试着使用更多的格式化字符
# char1 = ''  
# %c不接受标点符号
>>> char2 = 66
>>> char3 = 'a'
>>> print "ascll码表66和'a'代表%c和%c" %(char2,char3)
ascll码表66'a'代表B和a
>>> num1 = 0xEF3
>>> num2 = 0xAB03
>>> print "转换成无符号十进制分别为:%u%u" %(num1,num2)
>>> print "转换为有符号十进制分别为:%d%d" %(num1,num2)
>>> print "转换为有符号十进制分别为:%i%i" %(num1,num2)
转换成十进制分别为:382743779
转换为十进制分别为:382743779
转换为十进制分别为:382743779
>>> num3 = 1200000
>>> print "转换为科学计数法为:%e" % (num3)
>>> print "转换为科学计数法为:%E" % (num3)
>>> print "转换为科学计数法为:%g和%G" %(num3,num3)
转换为科学计数法为:1.200000e+06
转换为科学计数法为:1.200000E+06
转换为科学计数法为:1.2e+061.2E+06

>>> num4 = 1.
>>> num5 = 1
>>> print num4,num5
>>> print "以浮点数输出:%f和%F" %(num4,num4)
>>> print "以浮点数输出:%f和%F" %(num5,num5)
>>> num6 = 1.6666666
>>> print "以浮点数输出为:%f和%F" % (num6,num6) # 自然截断为六位数
1.0 1
以浮点数输出:1.0000001.000000
以浮点数输出:1.0000001.000000
以浮点数输出为:1.6666671.666667
# "%s""%r"的差别
>>> string = 'Hello\tworld!\n'
>>> print "%s" % string
>>> print string
>>> print "%r"% string
>>> print repr(string)
>>> print eval(repr(string))
Hello   world!

Hello   world!

'Hello\tworld!\n'
'Hello\tworld!\n'
Hello   world!

这里的差异是str()和repr()两个内建函数之间的差异

  • str()得到的字符串是面向用户的,具有较好的可读性。
  • repr()得到的字符串是面向机器的。
  • 通常(不是所有)repr()得到的效果是:obj == eval(repr(obj))

格式化操作符辅助符

通过”%”可以进行字符串格式化,但是”%”经常会结合下面的辅助符一起使用。

辅助符号 说明
星号 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号(+)
0 显示的数字前面填充”0”而不是默认的空格
(var) 映射变量(通常用来处理字段类型的参数)
# 在八进制数前面显示零(0),在十六进制前面显示”0x”或者”0X”(取决于用的是”x”还是”X”)
m.n m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

image

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/myRealization/article/details/79558840

智能推荐

在 Linux 系统的用户目录下安装 ifort 和 MKL 库并配置_在linux系统的用户目录下安装ifort和mkl库并配置-程序员宅基地

文章浏览阅读2.9k次。ifort 编译器的安装ifort 编译器可以在 intel 官网上下载。打开https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/fortran-compiler.html#gs.7iqrsm点击网页中下方处的 Download, 选择 Intel Fortran Compiler Classic and Intel Fortran Compiler(Beta) 下方对应的版本。我选择的是 l_在linux系统的用户目录下安装ifort和mkl库并配置

使用ftl文件生成图片中图片展示无样式,不显示_ftl格式pdf的样式调整-程序员宅基地

文章浏览阅读689次,点赞7次,收藏8次。些项目时需要一个生成图片的方法,我在网上找到比较方便且适合我去设置一些样式的生成方式之一就是使用Freemarker,在对应位置上先写好一个html格式的ftl文件,在对应位置用${参数名}填写上。还记得当时为了解决图片大小设置不上,搜索了好久资料,不记得是在哪看到的需要在里面使用width与height直接设置,而我当时用style去设置,怎么都不对。找不到,自己测试链接,准备将所有含有中文的图片链接复制一份,在服务器上存储一份不带中文的文件。突然发现就算无中文,有的链接也是打不开的。_ftl格式pdf的样式调整

orin Ubuntu 20.04 配置 Realsense-ROS_opt/ros/noetic/lib/nodelet/nodelet: symbol lookup -程序员宅基地

文章浏览阅读1.5k次,点赞6次,收藏12次。拉取librealsense。_opt/ros/noetic/lib/nodelet/nodelet: symbol lookup error: /home/admin07/reals

统信UOS专业版系统安装教程 - 全盘安装UOS系统_统信uos系统专业版-程序员宅基地

文章浏览阅读1w次。本文介绍了UOS系统安装(全盘安装)的过程,如果没有特殊要求,推荐安装UOS系统都采用全盘安装_统信uos系统专业版

号外号外 震惊 震惊,人工智能中,训练一下模型,然后生成模型,都能申请专利,看看这个识别面部动作的专利-程序员宅基地

文章浏览阅读116次。这种专利有意思吗 有意义吗 有创新吗?和别人都是右手写字,我申请左手写字的专利 ,,有什么区别

jmeter接口测试自动获取cookie_xing2516_新浪博客-程序员宅基地

文章浏览阅读514次。jmeter接口测试自动获取cookie有时候我们接口地址和方式都对,就是报错,查看接口文档,其实需要加上消息头cookie,添加完cookie,不需要配置获取什么的,只要加一个访问网站的首页地址(HTTP请求),他会自动获取到cookie值添加cookie管理器加完cookie管理器,登录里就获取到了cookie值Jmeter请求参数3种形..._jmeter request body获取cookie

随便推点

笔记-中项/高项学习期间的错题笔记1_大型设备可靠性测试可否拆解为几个部分进行测试-程序员宅基地

文章浏览阅读1.1w次。这是记录,在中项、高项过程中的错题笔记;https://www.zenwu.site/post/2b6d.html1. 信息系统的规划工具在制订计划时,可以利用PERT图和甘特图;访谈时,可以应用各种调查表和调查提纲;在确定各部门、各层管理人员的需求,梳理流程时,可以采用会谈和正式会议的方法。为把企业组织结构与企业过程联系起来,说明每个过程与组织的联系,指出过程决策人,可以采用建立过程/组织(Process/Organization,P/O)矩阵的方法。例如,一个简单的P/O矩阵示例,其中._大型设备可靠性测试可否拆解为几个部分进行测试

html 保存成word (富文本编辑器导出内容成word)_wangeditor导出word-程序员宅基地

文章浏览阅读3.2w次。这几天项目里有个需求,用到富文本编辑器,然后导出word。富文本编辑器,网上很多,使用夜很简单,我们使用的是kindEditor。百度的ueditor很好,而且文档很全。阿里的kissy 感觉比较复杂,咱们写博客的这个,好像是wangEditor。一般用起来都很简单。这里重点说一下导出。如何将编辑器的内容保存到word文档里去。大体思路是这样的,(1)获取编辑器的内容,要是带html标签的,(2)..._wangeditor导出word

认识YOLOv5模型结构目录_yolo的框架在哪个文件-程序员宅基地

文章浏览阅读1.4k次,点赞20次,收藏26次。这个文件夹可能用于存放用于训练、验证和测试的图像数据的样本或其相关的示例图片。如果要改进 YOLOv5 模型,这些 YAML 文件是您可能需要修改的地方,特别是如果您想要调整模型训练的数据集或超参数。您可能希望调整训练的超参数,学习率计划,或引入新技术,如数据增强或不同的损失函数。: 这个文件夹包含模型训练过程的输出结果,通常包括权重文件、日志、训练和验证的损失图表以及其他可能的性能指标。: 这个文件夹下内容通常是自动生成的,用于存储训练和检测的输出结果,需要检查这些输出来评估您所做改进的效果。_yolo的框架在哪个文件

jeecg-boot安装和使用(入门)_jeecgboot-程序员宅基地

文章浏览阅读1.6w次,点赞10次,收藏42次。Jeecg-boot 安装与使用官方文档地址 http://doc.jeecg.comJeecgboot 基于springboot+代码生成器的快速开发平台 采用前后端分离架构:SpringBoot,Mybatis,Shiro,JWT,Vue&Ant Design安装所需插件:JDK: 1.8Maven: 3.5+MySql: 5.7+Redis: 3.2 +Node Js: 10.0 +Npm: 5.6.0+Yarn: 1.21.1+Idea的lombok开发工具 前端_jeecgboot

转载:不是所有DDR3都可以用Fly by结构_ddr3 fly_by拓扑之应用实例-程序员宅基地

文章浏览阅读3.3k次。来源:http://www.edadoc.com/cn/TechnicalArticle/Show.aspx?id=555不是所有DDR3都可以用Fly by结构来源:一博科技 时间:2014-12-22 类别:微信自媒体作者:周伟 一博科技高速先生团队 本文由一博科技自媒体“看得懂的高速设计”出品 DDR设计序列文章摘要: 大家都知道DDR3设计通常使用Fly by..._ddr3 fly_by拓扑之应用实例

pads铺铜不能开启drp_PADS中常见问题解决方案-程序员宅基地

文章浏览阅读2.4k次。PADS中常见问题解决方案1、走线很细,不是设定值。解答:有时将预拉线布好线后,所布的线变成了一根很细的线而不是我们所设定的线宽,但是查看它的属性也还是一样的,最小线宽显示值的设定大于route线宽。setup→preferences→global→minimum display或者使用R X这个快捷命令,X表示需要设定的值。走线宽度无法修改,提示wrong widthvalue,关于线宽的rul..._pads设置灌铜进不去