交互与字符串格式化

本文详细介绍了程序与用户交互的概念,Python中的input和print功能,以及格式化输出(包括%占位符、format函数和f-string)的使用方法,强调了这些在编程中的重要性和应用价值。

1.何为交互

所谓程序与用户交互是指程序(软件、应用程序、网站等)与用户之间的互动和交流过程。在学习前提体现为input程序输入和print打印输出。

2.为什么要交互

程序与用户交互的目的是为了满足用户的需求和实现程序的功能。好的程序与用户交互应该让用户感到舒适、易于使用和理解,从而提高用户满意度和使用率。

3.input输入

# 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
>>> username=input('请输入您的用户名:') 
请输入您的用户名:jack # username = "jack"
>>> password=input('请输入您的密码:') 
请输入您的密码:123 # password = "123"

# 了解知识:
# 1、在python2中存在一个raw_input功能与python3中的input功能一模一样
# 2、在python2中还存在一个input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型
>>> l=input('输入什么类型就存成什么类型: ')
输入什么类型就存成什么类型: [1,2,3]
>>> type(l)
<type 'list'>

4. print输出

>>> print('hello world')  # 只输出一个值
hello world
>>> print('first','second','third')  # 一次性输出多个值,值用逗号隔开
first second third

# 默认print功能有一个end参数,该参数的默认值为"\n"(代表换行),可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@

5.格式化输出

5.1 何为格式化输出

格式化输出是将数据按照一定的格式或规则输出到屏幕、文件或其他输出设备中。简而言之就是把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出。

5.2 为什么要格式化输出

格式化输出可以使得输出的信息更加友好和易于理解,提高程序的可读性和可维护性。格式化输出还可以将数据按照一定的格式输出,方便用户快速地获取需要的信息。
具体来说,格式化输出可以帮助我们实现以下几个方面的功能:

  1. 整理输出信息:将输出的信息按照一定的格式、排版等规则整理,使其更易于理解和阅读。
  2. 显示数据类型:通过格式化输出,可以将各种不同的数据类型(如字符串、整数、浮点数等)以不同的方式进行显示,使输出的信息更加清晰明了。
  3. 避免出错:正确的格式化输出可以避免由于输出信息不清晰、格式错误等原因导致的程序出错。
  4. 提高可读性和可维护性:格式化输出可以使程序代码更加易于阅读和理解,方便后续维护和修改。

5.3 格式化输出的三种方式

5.3.1 %占位符

5.3.1.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;)
    %,当字符串中存在格式化标志时,需要用 %%表示一个百分号
    注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式
5.3.1.2 基本格式化使用

只有一个占位符

name = "Antony"
# 占位符
# text = "我叫%s,今年18岁" %"Antony"
text = "我叫%s,今年18岁" %name

多个占位符

name = "Antony"
age = 18

# text = "我叫%s,今年%s岁" %("Antony",18)
# text = "我叫%s,今年%s岁" %(name,age)
text = "我叫%s,今年%d岁" %(name,age)
5.3.1.3 百分比的输出

一旦字符串格式化中存现百分比的显示,请一定要呀加 %% 以实现输出 %。

text = "%s,这个片我已经下载了90%%了,居然特么的断网了" %"兄弟"
print(text)
# 输出:
兄弟,这个片我已经下载了90%了,居然特么的断网了

5.3.2 format格式化

5.3.2.1 顺序format格式化

顺序format格式化即将format函数中的内容与字符串中{}占位符一 一对应并填入。

text = "我叫{},今年{}岁,我的爱好是{}。".format("Antony",18,"学习")
print(text)  # 我叫Antony,今年18岁,我的爱好是学习。
5.3.2.2 指定位置format格式化

指定位置的format格式化即将{}中的数字与format函数中的对应位置内容填入。

text = "我叫{0},今年{1}岁,真的是{0}。".format("Antony",18)
print(text)  # 我叫Antony,今年18岁,真的是Antony。
5.3.2.3 关键字format格式化

关键字format格式化即将{}占位符中的变量与format中对应填入。

text = "我叫{name},今年{age}岁。".format(name="Antony",age=18)
print(text)  # 我叫Antony,今年18岁。

5.3.3 串前f格式化字符串

字符串前加f是python3.6加入的新特性,串前f的加入使字符串格式化变得更加方便快捷。

name = "Antony"
age = 18
text = f"我叫{name},今年{age}岁"
print(text)  # 我叫Antony,今年18岁。

可以在字符串中进行运算

print(f"我今年{12 + 6}岁"  # 我今年18岁

python 3.8新加入特性

print(f"3 + 5 =")  # 3 + 5 = 8

进制转换

# 进制转换
v1 = f"我今年{22}岁"
print(v1) # 我今年22岁

v2 = f"我今年{22:#b}岁"
print(v2)  # 我今年0b10110岁

v3 = f"我今年{22:#o}岁"
print(v3)  # 我今年0o26岁

v4 = f"我今年{22:#x}岁"
print(v4)  # 我今年0x16岁。

可以使用函数

print(f"我叫{'Antony'.lower()}")  # 我叫antony
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值