输出

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输入与输出的更多相关文章

  1. Python - 输入和输出 - 第十七天

    Python 输入和输出 在前面几个章节中,我们其实已经接触了 Python 的输入输出的功能.本章节我们将具体介绍 Python 的输入输出. 输出格式美化 Python两种输出值的方式: 表达式语 ...

  2. python 输入和输出

    到目前为止我们遇到过两种输出值的方法: 表达式语句和print语句. (第三个方式是使用文件对象的write()方法: 标准输出文件可以引用 sys.stdout.详细内容参见库参考手册. Pytho ...

  3. Python输入和输出

    在很多时候,你会想要让你的程序与用户(可能是你自己)交互.你会从用户那里得到输入,然后打印一些结果.我们可以分别使用raw_input和print语句来完成这些功能.对于输出,你也可以使用多种多样的s ...

  4. 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 ...

  5. Python 输入与输出

    Python2版本 raw_input raw_input("输入提示"),会把输入的内容当做字符串返回 input 会把用户输入的内容当做代码来处理,可以理解为 raw_inpu ...

  6. Ulipad Python输入先后输出问题

    print "Enter a interger"number=input() 在菜单栏 python-----设置参数----在Parameters:那栏加个参数 -u , 就可以 ...

  7. python输入一个\输出2个\问题

    在Python里面,如果\后面不是一个合法的转移字符,那么,Python会打印两个\,换句话说,Python将\也当成普通字符看待,而不是转义符的标志: >>>S = 'C:\py\ ...

  8. Python学习--02输入和输出

    命令行输入 x = input("Please input x:") y = raw_input("Please input x:") 使用input和raw_ ...

  9. Python 基础【第三篇】输入和输出

    这里我们创建一个python(pytest)脚本用于学习测试(以后都为这个文件,不多做解释喽),这个文件必须要有执行权限的哈 1.创建pytest并赋予执行权限 [root@fengyuba_serv ...

随机推荐

  1. 网络地址转换NAT的两种模式(概念浅析)& IP溯源

    由于全球IPv4地址越来越少.越来越贵,因此大到一个组织,小到一个家庭一个人都很难获得公网IP地址,所以只能使用内网地址,从而和别人共享一个公网IP地址.在这种情况下,NAT技术诞生. 翻译 NAT( ...

  2. 手工实现一个ThreadPoolExecutor

    以下代码的实现逻辑出自于公众号 码农翻身 <你管这破玩意叫线程池?> - PS:刘欣老师在我心中是软件技术行业的大刘. 线程池接口 public interface Executor { ...

  3. 前端笔记:React的form表单全部置空或者某个操作框置空的做法

    1.全部置空的做法,一般在弹出框关闭后,需要重置该form所有表单: this.props.form.resetFields(); 2.针对某个操作框置空的做法 例如,form表单里有一个部门和一个张 ...

  4. slickgrid ( nsunleo-slickgrid ) 1 开篇有益

    slickgrid (nsunleo-slickgrid)  1 开篇有益  作为专职的程序猿,自认为是老菜鸟或老民工,以前一直在某浪上写博客,上知天文,下达地理.做了N年的.net,又转Java,从 ...

  5. 002-JVM部分

    JVM部分数据整理 一.运行时数据区域 Java运行时内存区域主要分为线程私有区域[程序计数器.虚拟机栈.本地方法区].线程共享区域[Java堆.方法区].直接内存(不受JVM GC管理) 1.线程私 ...

  6. centos /bin /sbin /usr/bin /usr/sbin 目录的说明

    在linux下我们经常用到的四个应用程序的目录是/bin./sbin./usr/bin./usr/sbin .而四者存放的文件一般如下:    bin目录:  bin为binary的简写主要放置一些系 ...

  7. uniCloud的简单使用 增删改查

    新建一个uni-app 项目 启动云开发 选择想要的云服务 在次之前先完成uniCloud 的实名认证 https://unicloud.dcloud.net.cn 有在Web控制台创建过云服务空间就 ...

  8. MySQL入门(6)——流程控制

    MySQL入门(6)--流程控制 IF语句 条件判断语句,逻辑与大多数编程语言相同,表示形式如下: IF condition THEN ... [ELSE condition THEN] ... [E ...

  9. 关于python浮点数精度问题计算误差的原因分析

    在python中使用浮点数运算可能会出现如下问题 a = 0.1+0.2print(a) 输出的结果是 0.30000000000000004 原因如下: 出现上面的情况,主要还是因浮点数在计算机中实 ...

  10. Nuxt.js vue服务端渲染

    一.为什么要用Nuxt.js 原因其实不用多说,就是利用Nuxt.js的服务端渲染能力来解决Vue项目的SEO问题. 二.Nuxt.js和纯Vue项目的简单对比 1. build后目标产物不同 vue ...