Python输入与输出
输出
print函数
语法:
print(self, *args, sep=' ', end='\n', file=None)
print函数是python中最常见的一个函数。用于将内容打印输出。
print(1)
print("abc")
print函数可以一次输出多个对象,对象之间用逗号分隔:
a = "Hello"
b = "World"
c = "Python"
print(a, b, c) # Hello World Python
sep参数: 当输出多个对象时可以指定分隔符
a = "Hello"
b = "World"
c = "Python"
print(a, b, c, sep=".") # Hello.World.Python
end参数: 指定以什么结尾,默认值是换行符 \n
a = "Hello"
b = "World"
print(a, end="")
print(b)
file参数: 要写入的文件对象,默认sys.stdout,即系统标准输出,也就是屏幕输出
f = open("test.txt", "w")
print('你好啊', file=f)
f.close()
格式化输出
格式化输出:即按照一定的格式输出内容。
Python格式化字符串有以下几种方式:
- %
- str.format()
- f-string
(1)%
name = 'Tom'
print("我的名字是%s" % "Tom") # 我的名字是Tom
print('我的名字是%s' % name) # 我的名字是Tom
age = "20"
print("我的名字是%s,年龄是%s" % (name, age)) # 我的名字是Tom,年龄是20
注: 有多少个%符号,后面就要提供多少个参数值。
如果值是一个字典, 那么必须在字符串中的 %
字符后面插入该字典的键。
my_name = "jerry"
user = "Tom"
print("%(name)s你在干嘛呀?%(user)s来找你了" % {"name": my_name, "user": user}) # jerry你在干嘛呀?Tom来找你了
当文本中存在 %
符号,想要原样输出 %
符号时,必须使用两个%符号实现。
msg = "%s淘汰了%%80的人" % "小明"
print(msg) # 小明淘汰了%80的人
除了 %s
外,还有其他常见的格式化符号:
符号 | 说明 |
---|---|
%s | 字符串 |
%d | 有符号的十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%X | 十六进制整数大写 |
%e | 科学计数法(小写'e') |
%E | 科学计数法(大写'E') |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
技巧
%03d:表示输出的整数显示位数,不足以0补全,超出当前位数则原样输出。
%.2f:表示小数点后显示的小数位数。
示例
name = 'Tom'
age = 18
weight = 50.5
s_id = 1
print('我今年%d岁' % age) # 我今年18岁
print('我的体重是%f公斤' % weight) # 我的体重是50.500000公斤
print('我的体重是%.2f公斤' % weight) # 我的体重是50.50公斤
print('我的学号是%d' % s_id) # 我的学号是1
print('我的学号是%03d' % s_id) # 我的学号是001
print('我的名字是%s,今年%d岁了' % (name, age)) # 我的名字是Tom,今年18岁了
print('我的名字是%s,明年%d岁' % (name, age + 1)) # 我的名字是Tom,明年19岁
print('我的名字是%s,今年%s岁,体重是%s公斤' % (name, age, weight)) # 我的名字是Tom,今年18岁,体重是50.5公斤
(2)str.format()
除了使用 %
格式化方法,还可以采用str.format()方法的格式化,这种方式比较推荐。
format()
函数把字符串当成一个模板,使用大括号 {}
作为特殊字符代替 %
。
顺序传参
print("我的名字是{},年龄是{}".format("Tom", 18)) # 我的名字是Tom,年龄是18
位置传参
print("你叫是{0},年龄是{1},真实姓名是{0}".format("Tom", 18)) # 你叫是Tom,年龄是18,真实姓名是Tom
关键字或字典传参
print("{name2}给了{name1}一百元".format(name1="Jerry", name2="Tom")) # Tom给了Jerry一百元
kwargs = {"name": "Tom", "age": 18}
print("我的名字是{name},我的年龄是{age}".format(**kwargs)) # 我的名字是Tom,我的年龄是18
容器类型数据传参
方法1
my_str = "{0[1]}打了{1[0]}一下"
print(my_str.format(["tom", "jerry"], ("小明", "小红"))) # jerry打了小明一下
方法2
my_str = "{str2[1]}打了{str1[0]}一下"
print(my_str.format(str1=["tom", "jerry"], str2=("小明", "小红"))) # 小红打了tom一下
方式3
my_str = "{str2[1]}打了{str1[second]}一下"
print(my_str.format(str1={"first": "Tom", "second": "jerry"}, str2=("小明", "小红"))) # 小红打了jerry一下
对齐方式及位数补全
语法:
{关键字:要填充的字符 填充的方向 占用的总长度}
填充的方向: <
(默认)左对齐、>
右对齐、^
中间对齐、=
(只用于数字)在小数点后进行补齐。
示例:
print("{name:&>10}的年龄{age:*^10}".format(name="xiaoming", age=18)) # &&xiaoming的年龄****18****
不指定填充字符,默认是空格
print("{name:*>10}的年龄{age:^6}".format(name="xiaoming", age=18)) # **xiaoming的年龄 18
整型占位符
:d
print("今天是{:d}月{:d}号".format(10, 1)) # 今天是10月1号
# 如果是小数则报错
print("今天是{:d}月{:d}号".format(10.0, 1)) # ValueError: Unknown format code 'd' for object of type 'float'
指定占用位数
# 占用4位,原字符串居右
print("我买了{:4d}个苹果".format(10)) # 我买了 10个苹果
# 指定居中
print("我买了{:^4d}个苹果".format(10)) # 我买了 10 个苹果
浮点型占位符
:f
# 默认保留小数点后6位
print("我今天一共花了{:f}元".format(3.14)) # 我今天一共花了3.140000元
# 指定小数点后保留的位数,
print("我今天一共花了{:.3f}元".format(3.14)) # 我今天一共花了3.140元
# 存在四舍五入的情况
print("这个月的工资是{:.2f}元".format(9000.016)) # 这个月的工资是9000.02元
二进制占位符
:b
print("{:b}".format(2)) # 10
# 如果前面加#,则带进制前缀
print("{:#b}".format(2)) # 0b10
八进制占位符
:o
print("{:o}".format(10)) # 12
# 如果前面加#,则带进制前缀
print("{:#o}".format(10)) # 0o12
十六进制占位符
print('{:x}'.format(11) ) # b
# 如果前面加#,则带进制前缀
print('{:#x}'.format(11)) # 0xb
字符串占位符
:s
print("{:s}".format("今天是周末")) # 今天是周末
金钱占位符
:,
print("{:,}".format(123456789)) # 123,456,789
(3)f-string
f-string,被称为格式化字符串常量,是Python3.6新引入的一种字符串格式化方法。f-string的形式是以'f'
或 'F'
作为前缀的字符串。这种方式使格式化字符串的操作更加简便。
name = 'Tom'
age = 18
print(f'我的名字是{name},今年{age}') # 我的名字是Tom,今年18
print(F'我的名字是{name},今年{age}') # 我的名字是Tom,今年18
salary = 100000
print(f"小明的月收入位{salary}元")
表达式求值
print(f"{1+3}") # 4
调用函数
name = 'TOM'
print(f"{name.lower()}")
进制转换
print(f"{11:#b}") # 0b1011
print(f"{11:#o}") # 0o13
print(f"{11:#x}") # 0xb
输入
输入可以实现程序和用户之间的交互。
input函数
input函数:等待用户输入,输入完成之后才继续向下执行。
user = input('请输入您的姓名:')
print(f'您输入的姓名是{user}')
print(type(user)) # <class 'str'>
type
是Python内置的函数,用于查看对象的数据类型。
控制台输出结果如下:
注意: input会把接收到用户输入的任意数据都当做字符串处理,哪怕你输入的是数字都会被转为字符串。
Python输入与输出的更多相关文章
- Python - 输入和输出 - 第十七天
Python 输入和输出 在前面几个章节中,我们其实已经接触了 Python 的输入输出的功能.本章节我们将具体介绍 Python 的输入输出. 输出格式美化 Python两种输出值的方式: 表达式语 ...
- python 输入和输出
到目前为止我们遇到过两种输出值的方法: 表达式语句和print语句. (第三个方式是使用文件对象的write()方法: 标准输出文件可以引用 sys.stdout.详细内容参见库参考手册. Pytho ...
- Python输入和输出
在很多时候,你会想要让你的程序与用户(可能是你自己)交互.你会从用户那里得到输入,然后打印一些结果.我们可以分别使用raw_input和print语句来完成这些功能.对于输出,你也可以使用多种多样的s ...
- python输入与输出165
s = 'Hello,Runoob' print(s) str(s) print(s) print(repr(s)) print(1/7) print(str(1/7)) print(repr(1/7 ...
- Python 输入与输出
Python2版本 raw_input raw_input("输入提示"),会把输入的内容当做字符串返回 input 会把用户输入的内容当做代码来处理,可以理解为 raw_inpu ...
- Ulipad Python输入先后输出问题
print "Enter a interger"number=input() 在菜单栏 python-----设置参数----在Parameters:那栏加个参数 -u , 就可以 ...
- python输入一个\输出2个\问题
在Python里面,如果\后面不是一个合法的转移字符,那么,Python会打印两个\,换句话说,Python将\也当成普通字符看待,而不是转义符的标志: >>>S = 'C:\py\ ...
- Python学习--02输入和输出
命令行输入 x = input("Please input x:") y = raw_input("Please input x:") 使用input和raw_ ...
- Python 基础【第三篇】输入和输出
这里我们创建一个python(pytest)脚本用于学习测试(以后都为这个文件,不多做解释喽),这个文件必须要有执行权限的哈 1.创建pytest并赋予执行权限 [root@fengyuba_serv ...
随机推荐
- Spring IoC总结
Spring 复习 1.Spring IoC 1.1 基本概念 1.1.1 DIP(Dependency Inversion Principle) 字面意思依赖反转原则,即调用某个类的构造器创建对象时 ...
- EFCodeFirst关系映射约定
EFCodeFirst关系映射约定 EFCodeFirst 关系映射约定 默认多重关系的一些约定规则: 1.一对多关系 两个类中分别包含一个引用和一个集合属性. 两个类中一个类包含另一个类的引用属性. ...
- Java基础自学小项目
实现一个基于文本界面的<家庭记账软件> 需求:能够记录家庭的收入,支出,并能够收支明细表 主要涉及一下知识点: - 局部变量和基本数据类型 - 循环语句 - 分支语句 - 方法调用和返回值 ...
- 02.从0实现一个JVM语言之词法分析器-Lexer-03月02日更新
从0实现JVM语言之词法分析器-Lexer 本次有较大幅度更新, 老读者如果对前面的一些bug, 错误有疑问可以复盘或者留言. 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个s ...
- MySQL确认注入点
目录 WHERE子句后面的注入点 逻辑符号AND.OR other order by union limit table WEB渗透测试流程中,初期工作是进行信息收集,完成信息收集之后,就会进行漏洞测 ...
- Lua生成Guid(uuid)
全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) .GUID是一种由算法生成的二进制长度为 ...
- 译文《全新首发JDK 16全部新特性》
封面:洛小汐 译者:潘潘 JDK 8 的新特性都还没摸透,JDK 16 的新特性就提着刀来了. 郑重申明: 第一次冒险翻译专业领域的文献,可想而知,效果特别糟糕.一般翻译文献特别是 技术专业领域 的内 ...
- FreeBSD pkg基础教程1
pkg 基础教程1装上系统默认没有pkg,先获取pkg:#pkg 回车即可输入y 确认下载------------------------------------pkg使用https,先安装ssl 证 ...
- FreeBSD安装xorg + xfce 4
FreeBSD安装xorg,以及xfce 安装xorg 可选包 -xorg 完整xorg环境包 -xorg-minimal xorg最小化包 ports安装 cd /usr/ports/x11/xor ...
- SVN同步方式举例 FreeBSD
FreeBSD base 默认安装了svnlite 不需要单独安装SVN 软件 svnlite co svn.freebsd.org/ports/head/ /usr/local/ports -r5 ...