Python3输入输出与字符串格式化

目录

字符串

输入输出

键盘输入

输出

字符串格式化

格式化字符串常量(F-String)

format格式化

参数映射

对齐方式与精度

`%`格式化


Python3中使用input从键盘上获取输入,print来输出;format进行格式化。

字符串

字符串是 Python 中最常用的数据类型;使用引号 ( ' 或 " ) 来创建字符串。

以变量 a = "Hello",b = "Python"为例:

操作符 描述 实例
+ 字符串连接

a + b 'HelloPython'

* 重复输出字符串

a * 2 'HelloHello'

[] 通过索引获取字符串中字符

a[1] 'e'

[ : ] 截取字符串中的一部分

a[1:4] 'ell'

in 成员运算符 - 如果字符串中包含给定的字符返回 True

"H" in a True

not in 成员运算符 - 如果字符串中不包含给定的字符返回 True

"M" not in a True

r/R 原始字符串:所有的字符串都是直接按照字面的意思来使用;字符串中的反斜线(\)是一个普通字符,不具有转义功能

r'D:\temp\file\'

输入输出

键盘输入

Python提供了input()内置函数从标准输入读入一行文本;可以接收一个Python表达式作为输入,并将运算结果返回。

input(prompt=None,/)

  • prompt:提示信息

  • 返回str:根据需要转换为所需类型;通过eval可处理输入表达式

输入示例:

# 输入必须满足python表达式格式要求:必须使用逗号分割的两个值
m,n=eval(input("input two number: ")) # 'abc', 123
print(m,n)  # abc 123

# 只能输入整数值
count = int(input("count: "))
print(count)

输出

Python中使用print输出值,也可以通过文件对象(引用sys.stdout)的write方法输出。
print(*objects,sep='',end='\n',file=sys.stdout,flish=flase)
参数说明:

  • objects:可以一次输出多个对象(多个对象时,用逗号分隔);

  • sep:多个对象时他们之间的分隔符,默认值是一个空格;

  • end:以什么结尾,默认值是换行符\n

字符串格式化

python3.6前字符串的格式化方法分为两种为:占位符(%)和format方式;从3.6开始,新增格式化字符串常量。

格式化字符串常量(F-String)

F-String在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'):

  • 以大括号 {} 标明被替换的字段:大括号内可直接填入变量,也可是表达式或函数调用
  • 格式化方式与format类似{content:format} :如格式化两位浮点{label:.2f};
  • 括号内不能使用`\`做转义;
  • 在本质上是一个在运行时运算求值的表达式。
name = 'mike'
print(f"my name is {name}, upper {name.upper()}")

count = 5
print(f"total count is {count*2+3}, log {math.log2(count):.4f}")

print(f'''string example: {"I'm mike"}''')
print(f"brace example: {{5}} in brace")

# my name is mike, upper MIKE
# total count is 13, log 2.3219
# string example: I'm mike
# brace example: {5} in brace

format格式化

使用{}来标识格式化字符串,后面使用format列出对应变量。

{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}

Python3输入输出与字符串格式化_第1张图片

格式化符说明:

  • sign:正数显示方式(+,数字前添加一个加号;-,直接显示数字,空格,数字前添加一个空格);
  • 0:对数值型,指定了宽度时,用0填充高位;
  • #:切换数字前导符显示方式(二进制添加'0b',八进制添加'0o',十六进制添加'0x/0X‘);
  • ",":千分位分隔符;
  • type:指定类型,参考%格式化(如:x十六进制,d整数,f浮点数等)

参数映射

name标识后面参数,可以:

  • {}:自动顺序填充;此方式不能与索引方式混用;

  • 索引{0}:按索引填充,第一个参数为0;

  • 使用名称{name}:通过名称匹配,参数必须是name=value样式;

  • 参数是复杂类型时,可直接操作子元素:如{0[0]}{a[first]}

print("{act} {lan}{0}".format(3,lan="python",act="study")) # study python3

print("{}:{}".format('192.168.1.100',80)) # 192.168.1.100:80

print("{a[0]} {a[1]}{a[2]}".format(a=["study","python",3])) # study python3

print("{dict[act]} {dict[lan]}{dict[ver]}".format(dict={"act":"study","ver":"3","lan":"python"})) # study python3

对齐方式与精度

填充与对齐方式:

  • algin ^、<、>:分别是居中、左对齐、右对齐

  • fill:填充内容,默认为空格

  • width:指定宽度

  • precision:指定精度(小数点后的位数),但对于gG 类型,指的是有效位数(小数点前位数+小数点后位数)

print('{:*^10}'.format('分割线')) # ***分割线****
print('{0:.2f}'.format(12.567)) # 12.57
print('{0:b}'.format(10)) # 1010
print('{0:x}'.format(29)) # 1d
print('{:e}'.format(12369132698)) # 1.236913e+10

`%`格式化

Python传统使用%格式字符串:

print('%s %s%d' % ('study', 'Python', 3)) # study Python3
print('%s' % 'abc') # abc

格式符说明:

格式 说明
%% 百分号标记
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中

​!r与%r

  • {!r}就是使用format语法时候的%r。因此,我们只需要关注%r就好。
  • %r表示的用repr()处理;类似于的%s表示用str()处理一样。
  • 其含义就是,转成解释器可以理解的部分。
    • 比如,数字,就变成str;str就变成带有引号的str
    • 调用其__repr__函数
    • 类似于直接用解释器或者IPython时候,直接在光标下输入变量,然后敲回车的输出。

'hello, {!r}'.format( '123')

你可能感兴趣的:(Python,字符串,python,格式化,f-string)