20210508 字符串的格式化输出
16lz
2021-05-08
Example:"found the needle at position " plus the index it found the needle, so:find_needle(['hay', 'junk', 'hay', 'hay', 'moreJunk', 'needle', 'randomJunk'])should return "found the needle at position 5"Solution:def find_needle(haystack): return 'found the needle at position {}'.format(haystack.index('needle'))
1-1# 现在想打印这样的一种格式info = '''------- info of $ -------Name:Age:Job:Salary:'''# 应该怎样打印?这就涉及到格式化输出username = input("name:")password = input("age:")job = input("job:")salary = input("salary:")# 怎么打印? print(info)?但是怎么将变量和字符串结合起来???1-1-1 字符串拼接name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")info = '''------- info of '''+name+''' -------Name:'''+age+'''Age:'''+job# Job:# Salary:# '''print(info)# 这样虽然格式化输出了,但是又 low 又 麻烦
1-2 有一种更方便的办法# 在 shell 脚本中,用 $ 引用变量# 在python 中,用%name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")info = '''-------- info of %s -----Name: %sAge: %sJob: %sSalary: %s''' % (name, name, age, job, salary)print(info) # 顺序必须是一样的,%s 代表 string1-2-1 但是 age 是整数,所以name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")info = '''-------- info of %s -----Name: %sAge: %dJob: %sSalary: %s''' % (name, name, age, job, salary)print(info)# %d 表示接受数字,但是 %s 也是没有问题的# 为什么用 %d, 作用是帮助检测验证 数据类型# %f 表示浮点,小数1-2-2# 现在运行 1-2-1--->name:Taburissage:99999job:zxcvsalary:1000Traceback (most recent call last): File "C:\Users\Taburiss\PycharmProjects\s14\Trial01\trans_test.py", line 6, in <module> info = '''TypeError: %d format: a number is required, not str'''# 结果是报错了 TypeError: %d format: a number is required, not str'# 因为输入的不是数字,只是看起来是 数字# python 默认所有输入都是 字符串,所有需要把 Age 转成数字1-2-3name = input("name:")age = int(input("age:")) # integerprint(type(age), type(str(age)))job = input("job:")salary = input("salary:")info = '''-------- info of %s -----Name: %sAge: %dJob: %sSalary: %s''' % (name, name, age, job, salary)print(info)1-2-4name = input("name:")age = int(input("age:")) # integerprint(type(age), type(str(age)))--->name:Taburissage:99999<class 'int'> <class 'str'>
2-1# 除了这种字符串格式化的方式,还有别的吗???# python2 中的 raw_input 和 python3 中的 input 是完全一样的,但是在 python2 中还有一个 input# python2 中的 input 不要用,因为它接受的是什么格式,就认为是什么格式;不加双引号会认为是变量# 所以 3.0 中去掉了# 刚刚是 + 和 %;除此之外还有一种方式# 第 3 种方式就是 用 formatname = input("name:")age = int(input("age:"))job = input("job:")salary = input("salary:")info2 = '''-------- info of {_name} -----Name: {_name}Age: {_age}Job: {_job}Salary: {_salary}''' .format(_name=name, _age=age, _job=job, _salary=salary)print(info2)# 在一些特定化场景,格式化拼接只能用这个2-2# 也可以不指定参数,但是要求顺序必须没有问题# format 可以用这两种# 打印列表的 三种格式,忘记拼接,不要用拼接,加号拼接 内存多,不推荐name = input("name:")age = int(input("age:")) # integerprint(type(age), type(str(age)))job = input("job:")salary = input("salary:")info3 = '''-------- info of {0} -----Name: {0}Age: {1}Job: {2}Salary: {3}''' .format(name, age, job, salary)print(info3)# 不过,这种方式如果参数过多,就不会足够清晰
3-1format 格式化name = "my name is {name} and i am {year} old"print(name.format(name='aether',year=999))--> my name is aether and i am 999 old
总结:1 input;2 格式化拼接的三种方式,%和format
©著作权归作者所有:来自51CTO博客作者ATaburiss的原创作品,谢绝转载,否则将追究法律责任
更多相关文章
- 磁盘未被格式化救援方法
- __format__
- 格式化输出的三种方式
- Linux格式化报错mkfs.ext4: undefined symbol: ext2fs_numeric_p
- 如何格式化不属于任何段的损坏块 (文档 ID 1526163.1)
- 笔记本硬盘被格式化了的资料寻回办法
- 【vue】class、style的用法
- 苹果Mac如何使用Tuxera NTFS 格式化磁盘?
- Linux运维入门教程06-04 (硬盘分区、格式化及文件系统的管理二)