字符串的格式化

1.百分号的方式

 %[(name)][flags][width].[precision]typecode
 (name)      可选,用于选择指定的key
flags 可选,可供选择的值有:
  + 右对齐;正数前加正好,负数前加负号;
  - 左对齐;正数前无符号,负数前加负号;
  空格 右对齐;正数前加空格,负数前加负号;
  0 右对齐;正数前无符号,负数前加负号;用0填充空白处
width 可选,占有宽度
.precision 可选,小数点后保留的位数
typecode 必选
  s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置
  r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
  c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
  o,将整数转换成 八 进制表示,并将其格式化到指定位置
  x,将整数转换成十六进制表示,并将其格式化到指定位置
  d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
  e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
  E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
  f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
  F,同上
  g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
  G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
  %,当字符串中存在格式化标志时,需要用 %%表示一个百分号

代码解释

常用的格式化:

 tp1 = "hello %s"%"Python"

 tp1 = "i am %s age %d"%("nullnull",66)

 tp1 = "i am %(name)s age %(age)d"%{'name':'nullnull','age':66}

 tp1 = "percent %.2f"%100.00123

 tp1 = "i am %(dd).2f"%{'dd':100.00123}

2.Format方式

 [[fill]align][sign][#][0][width][,][.precision][type]
 fill   【可选】空白处填充的字符
align 【可选】对其方式,配合width使用
< 内容左对齐
> 内容右对齐(默认)
= 内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。
^ 内容居中 sign 【可选】有无符号数字
+,正号加正,负号加负;
-,正号不变,负号加负;
空格 ,正号空格,负号加负;
# 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
, 【可选】为数字添加分隔符,如:1,000,000
width 【可选】格式化位所占宽度
.precision 【可选】小数位保留精度
type 【可选】格式化类型
传入” 字符串类型 “的参数
s,格式化字符串类型数据
空白,未指定类型,则默认是None,同s
传入“ 整数类型 ”的参数
b,将10进制整数自动转换成2进制表示然后格式化
c,将10进制整数自动转换为其对应的unicode字符
d,十进制整数
o,将10进制整数自动转换成8进制表示然后格式化;
x,将10进制整数自动转换成16进制表示然后格式化(小写x)
X,将10进制整数自动转换成16进制表示然后格式化(大写X)
传入“ 浮点型或小数类型 ”的参数
e, 转换为科学计数法(小写e)表示,然后格式化;
E, 转换为科学计数法(大写E)表示,然后格式化;
f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
g, 自动在e和f中切换
G, 自动在E和F中切换
%,显示百分比(默认显示小数点后6位)

代码解释

常用的格式化:

 tp1 = "i am {},age {},{}".format("nullnull",66,"null")

 tp1 = "i am {},age {},{}".format(*["nullnull",66,"null"])

 tp1 = "i am {0},age {1},really {0}".format('nullnull',66)

 tp1 = "i am {0},age {1},really {0}".format(*['nullnull',66])

 tp1 = "i am {name},age {age},really {name}".format(name="nullnull",age=66)

 tp1 = "i am {name},age {age},really {name}".format(*[name="nullnull",age=66])

 tp1 = "i am {0[0]},age {0[1]},really {0[2]}".format(['nullnull',2,3])

 tp1 = "i am {:s},age {:d},money {:f}".format('null',66,100.00)

 tpl = "i am {:s}, age {:d}".format(*["seven", 18])

 tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18)

 tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})

 tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)

 tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)

 tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)

 tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

迭代器和生成器

1.迭代器

  • 迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
  • 迭代器只能向前不能后退。
  • 迭代器并不事先准备好迭代过程中的所有元素。迭代器仅仅在迭代到某个元素时才计算该元素,而这之前或之后,元素不存在或者被销毁。这个特点使得它特别适合用于遍历一些巨大的或是无限的集合。

特点:

  • 访问者不需要关心迭代器内部的结构,仅需要通过next()方法不断去取下一个内容
  • 不能随机访问集合中的某个值,只能从头到尾依次访问
  • 访问到一半时不能回退
  • 便于循环比较大的集合,节省内存
 a = iter([1,2,3,4,5,6])

 print(a)
# 结果:<list_iterator object at 0x00000268277F0390> # 取数据
next(a) #如果取到最后还继续取值,报错

2.生成器

一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator) ;

如果函数中包含yield语法,那这个函数就会变成生成器

 def func():
yield 1
yield 2
yield 3

此时:func是函数称为生成器,当执行此函数func()时会得到一个迭代器

 temp = func()

 next(temp)

我的Python升级打怪之路【四】:Python之前的一些补充的更多相关文章

  1. 我的Python升级打怪之路【一】:python的简单认识

    Python的简介 Python与其他语言的对比: C和Python.Java.C# C语言:代码直接编译成了机器码,在处理器上直接执行 Python.Java.C#:编译得到相应的字节码,虚拟机执行 ...

  2. 我的Python升级打怪之路【七】:网络编程

    Socket网络套接字 socket通常也称为"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过”套接字“向网络发出请求或者应答网络请求. socket起源于 ...

  3. 我的Python升级打怪之路【六】:面向对象(二)

    面向对象的一些相关知识点 一.isinstance(obj,cls) 检查实例obj是否是类cls的对象 class Foo(object): pass obj = Foo() isinstance( ...

  4. 我的Python升级打怪之路【六】:面向对象(一)

    面向对象的概述 面向过程:根据业务逻辑从上到下写代码 函数式:将其功能代码封装到函数中,日后便无需编写,仅仅调用即可 [执行函数] 面向对象:对函数进行分类和封装.[创建对象]==>[通过对象执 ...

  5. 我的Python升级打怪之路【五】:Python模块

    模块,是一些代码实现了某个功能的集合 模块的分类: 自定义模块 第三方模块 内置模块 导入模块 import module from module.xx.xx import xx from modul ...

  6. 我的Python升级打怪之路【三】:Python函数

    函数 在函数之前,我们一直遵循者:面向过程编程,即:根据业务逻辑从上到下实现功能,开发过程中最常见的就是粘贴复制.代码就没有重复利用率. 例如:有好多的重复的代码 if 条件: 发送指令 接收结果 e ...

  7. 我的Python升级打怪之路【二】:Python的基本数据类型及操作

    基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数是32位,取值范围是-2**31~2--31-1 在64位系统上,整数的位数是64位,取值范围是-2**63~2**63-1 clas ...

  8. gitlab 迁移、升级打怪之路:8.8.5--> 8.10.8 --> 8.17.8 --> 9.5.9 --> 10.1.4 --> 10.2.5

    gitlab 迁移.升级打怪之路:8.8.5--> 8.10.8 --> 8.17.8 --> 9.5.9 --> 10.1.4 --> 10.2.5 gitlab 数据 ...

  9. python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点

    python 闯关之路四(下)(并发编程与数据库编程)   并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型   操作系统工作原理介绍.线程.进程演化史.特点.区别 ...

随机推荐

  1. [LintCode笔记了解一下]41.Maximum Subarray

    Given an array of integers, find a contiguous subarray which has the largest sum. 首先 當題目涉及到求最大最小值時,最 ...

  2. CodeForces 834D The Bakery(线段树优化DP)

    Some time ago Slastyona the Sweetmaid decided to open her own bakery! She bought required ingredient ...

  3. Subsequence——POJ3061

    题目:http://poj.org/problem?id=3061 尺取法解题 import java.util.Scanner;; public class Main { public static ...

  4. Oracle数据表转换为Shapefile(二)

    在上一篇博文<Oracle数据表转换为Shapefile(一)>中详细描述了一种基于Oracle数据表生产Shapefile的技术方法,本文同样以详细图解的方式描述一种更便捷的方法来完成同 ...

  5. 解决 centos 7 部署 tomcat 后外部不能访问应用(端口、防火墙)

    https://blog.csdn.net/Rebs_Hugo/article/details/85042602

  6. leetcode 两个数组的交集 II

    给定两个数组,写一个方法来计算它们的交集. 例如: 给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. /** * @param {number[] ...

  7. [NetCore学习记录]第一章.使用netcore撸个简单的增删改查

    1.引言 2.解决方案各部分介绍图 3.添加数据模型 4.添加数据库上下文 5.修改配置文件 6.使用依赖关系注入容器注册数据库上下文 7.添加基架工具并执行初始迁移 1.引言 NetCore出来有一 ...

  8. javascript实现俄罗斯方块游戏

    观摩一下<编程之美>:“程序虽然很难写,却很美妙.要想把程序写好,需要写好一定的基础知识,包括编程语言.数据结构与算法.程序写得好,需要缜密的逻辑思维能力和良好的梳理基础,而且熟悉编程环境 ...

  9. 【QTP小技巧】02_QTP中Complete Word 实现(转载)

    相信做过开发或者写过JAVA的朋友都应该对Complete Word这个词语不陌生吧~ 对~~~它就是开发脚本过程中的催化剂 有了它我们就可以不用去死记硬背 有了它我们就不会出现某个代码少一个字母 有 ...

  10. toggleClass,toggle切换

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...