输出

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. Spring IoC总结

    Spring 复习 1.Spring IoC 1.1 基本概念 1.1.1 DIP(Dependency Inversion Principle) 字面意思依赖反转原则,即调用某个类的构造器创建对象时 ...

  2. EFCodeFirst关系映射约定

    EFCodeFirst关系映射约定 EFCodeFirst 关系映射约定 默认多重关系的一些约定规则: 1.一对多关系 两个类中分别包含一个引用和一个集合属性. 两个类中一个类包含另一个类的引用属性. ...

  3. Java基础自学小项目

    实现一个基于文本界面的<家庭记账软件> 需求:能够记录家庭的收入,支出,并能够收支明细表 主要涉及一下知识点: - 局部变量和基本数据类型 - 循环语句 - 分支语句 - 方法调用和返回值 ...

  4. 02.从0实现一个JVM语言之词法分析器-Lexer-03月02日更新

    从0实现JVM语言之词法分析器-Lexer 本次有较大幅度更新, 老读者如果对前面的一些bug, 错误有疑问可以复盘或者留言. 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个s ...

  5. MySQL确认注入点

    目录 WHERE子句后面的注入点 逻辑符号AND.OR other order by union limit table WEB渗透测试流程中,初期工作是进行信息收集,完成信息收集之后,就会进行漏洞测 ...

  6. Lua生成Guid(uuid)

    全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) .GUID是一种由算法生成的二进制长度为 ...

  7. 译文《全新首发JDK 16全部新特性》

    封面:洛小汐 译者:潘潘 JDK 8 的新特性都还没摸透,JDK 16 的新特性就提着刀来了. 郑重申明: 第一次冒险翻译专业领域的文献,可想而知,效果特别糟糕.一般翻译文献特别是 技术专业领域 的内 ...

  8. FreeBSD pkg基础教程1

    pkg 基础教程1装上系统默认没有pkg,先获取pkg:#pkg 回车即可输入y 确认下载------------------------------------pkg使用https,先安装ssl 证 ...

  9. FreeBSD安装xorg + xfce 4

    FreeBSD安装xorg,以及xfce 安装xorg 可选包 -xorg 完整xorg环境包 -xorg-minimal xorg最小化包 ports安装 cd /usr/ports/x11/xor ...

  10. SVN同步方式举例 ​​​​ FreeBSD

    FreeBSD base  默认安装了svnlite 不需要单独安装SVN 软件 svnlite co svn.freebsd.org/ports/head/ /usr/local/ports -r5 ...