1、输出
作用:程序输出内容给用户。 一般用print()进行内容输出。
实例
print('hello Python')
age = 18
print(age)
# 运行结果:
hello Python
18
1.1 格式化输出
所谓的格式化输出即按照⼀定的格式输出内容。
格式化符号 — 可以理解为“占位符”
格式化符号 | 转换格式 |
---|---|
%s | 字符串 |
%d | 整数 |
%f | 浮点数 (默认保留小数点后6位) |
%u | 无符号十进制整数 |
%o | 八进制整数 (小写字母o,不是数字0) |
%x | 十六进制整数(小写字母x) |
%e | 小数点后面保留六位有效数字,以指数形式输出实数 |
%g | 根据数字大小自动选f格式或e格式,且不输出无意义的零 |
1.1.1 整数的输出
------%d 将被占位的元素作为整数进行输出。
num = 123456
# %o —— oct 八进制 了解
print("打印输出123456的八进制:%o"%num)
# %d —— dec 十进制
print("打印输出123456的十进制:%d"%num)
# %x —— hex 十六进制 了解
print("打印输出123456的十六进制:%x"%num)
# 运行结果:
打印输出123456的八进制:361100
打印输出123456的十进制:123456
打印输出123456的十六进制:1e240
注意:%o和%x 都不能转换 浮点型数据,但是%d 可以转转浮点型数据,只保留浮点型数据的整数部分,不管小数点后面是8还是4
1.1.2 浮点数输出
------%f 将被占位的元素作为浮点型进行输出,默认保留小数点后面六位有效数字。
number = 180.5
# %f ——默认保留小数点后面六位有效数字
print("我的身高是:%f"%number)
# %.3f,保留3位小数位
print("我的身高是:%.3f"%number)
# %e ——保留小数点后面六位有效数字,指数形式输出 (用的不多,了解即可)
print("我的身高是:%e"%number)
# %.3e,保留3位小数位,使用科学计数法
print("我的身高是:%.3e"%number)
# %g ——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法 (用的不多,了解即可)
print("我的身高是:%g"%number)
# %.3g,保留3位有效数字,使用小数或科学计数法
print("我的身高是:%.3g"%number)
# 运行结果:
我的身高是:180.500000
我的身高是:180.500
我的身高是:1.805000e+02
我的身高是:1.805e+02
我的身高是:180.5
我的身高是:180
注意:%f 同样可以对整数进行格式化输出,小数点后以0补充。
1.1.3 字符串输出
------%s 将被占位的元素作为字符串进行输出。
%s 可以将字符串、整型、浮点型等任何python类型作为字符串格式化输出。
name = "列·ning"
# %10s——右对齐,占位符10位 (用的不多,了解即可)
print("格式化输出:%10s" % name)
print("格式化输出:%+10s" % name)
# %-10s——左对齐,占位符10位
print("格式化输出:%-10s" % name)
# %.2s——截取2位字符串
print("格式化输出:%.2s" % name)
# %10.2s——截取两位字符串,10位占位符,右对齐
print("格式化输出:%10.2s" % name)
# %-10.2s——截取两位字符串,10位占位符,左对齐
print("格式化输出:%-10.2s" % name)
# 运行结果:
格式化输出: 列·ning
格式化输出: 列·ning
格式化输出:列·ning
格式化输出:列·
格式化输出: 列·
格式化输出:列·
小技巧
%06d,%.6d表示输出的整数显示位数,不⾜以0补全,超出当前位数则原样输出
%.2f,表示⼩数点后显示的⼩数位数。
实例
age = 18
name = '老王'
weight = 155.5
student_id = 1
hight = 182
print('我的名字是%s' % name)
# 运行结果:
我的名字是老王
print('我的学号是%04d' % student_id)
# 运行结果:
我的学号是0001
print('我的体重是%.2f⽄' % weight)
# 运行结果:
我的体重是155.50⽄
print('我的名字是%s,今年%d岁了,体重是%f斤,身高是%d' % (name, age, weight, hight))
# 运行结果:
我的名字是老王,今年18岁了,体重是155.500000斤,身高是182
print('我的名字是%s,明年%d岁了' % (name, age + 1))
# 运行结果:
我的名字是老王,明年19岁了
1.1.4 format的用法
相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’
name = "小明"
age = 18
love = "打游戏"
# 1、不带编号
print("大家好,我是{},今年{}岁,喜欢{}".format(name,age,love))
# 2、带数字编号
print("大家好,我是{2},今年{0}岁,喜欢{1}".format(age,love,name))
# 3、附带关键字
print("大家好,我是{name},今年{age}岁,喜欢{love}".format(age=age,name=name,love=love))
# 运行结果:
大家好,我是小明,今年18岁,喜欢打游戏
大家好,我是小明,今年18岁,喜欢打游戏
大家好,我是小明,今年18岁,喜欢打游戏
1.1.5 f"xxx{}xxx"
在字符串前面加上f以达到格式化的目的,在{}里加入对象,此为format的另一种更加简洁的形式。
name = "小明"
age = 18
love = "打游戏"
print(f"大家好,我是{name},今年{age}岁,喜欢{love}")
# 运行结果:
大家好,我是小明,今年18岁,喜欢打游戏
1.1.5.1 保留小数位数
如果想保留6位小数,只用写:f,区别于%.f。
“:” 表示对数据修改的说明,f表示转为浮点型,并保留6位小数,如想保留10位,在:后加上.10f
num = 1234
str1 = f'{num:f}---------{num:.10f}'
print(str1)
# 运行结果:
1234.000000---------1234.0000000000
1.1.5.2 显示千分位符
像银行存款之类的财务数据,金额都是每三位打一个逗号,用f{}一步就搞定咯
str2 = f'余额:{1234567890:,}'
print(str2)
# 运行结果:
余额:1,234,567,890
1.1.5.3 输出百分比
在:后面,%前面加.n(n表示保留几位小数)
str3 = f'当前boss血量剩余{0.66:.2%},当前你的血量剩余{0.75:.1%}'
print(str3)
# 运行结果:
当前boss血量剩余66.00%,当前你的血量剩余75.0%
1.1.5.4 数据对齐、字符填充
写法——:符号^数字
- 符号: 为待填充的符号,如* + - =,不写符号默认为空格填充
- 数字: 表示填充后的字符串总长度,如: :*<10
- 如果数字小于字符串本身的长度,则不进行填充操作
str4 = f'{123:*>10}'
str5 = f'{123:-<10}'
str6 = f'{123:+^10}'
str7 = f'{123:0^10}'
str8 = f'{123:^10}'
print(str4)
print(str5)
print(str6)
print(str7)
print(str8)
# 运行结果:
*******123
123-------
+++123++++
0001230000
123
1.2 转义字符
\n :换⾏。
\t :制表符,⼀个tab键(4个空格)的距离。
\ : 续行符
\’ : 单引号
\" : 双引号
2、输入
在Python中,程序接收⽤户输⼊数据的功能即是输⼊
2.1 输入的语法
input() 会将接收的内容转化为字符串,括号内可以空着,但一般会输入提示用户输入的语句
input("请输入密码:")
# 运行结果:
请输入密码:
2.2 输入的特点
- 当程序执⾏到 input ,会等待⽤户输⼊,直到输⼊完成之后才继续向下执⾏。
- 在Python中, input 接收⽤户输⼊后,⼀般存储到变量,⽅便使⽤。
- 在Python中, input 会把接收到的任意⽤户输⼊的数据都当做字符串处理。
password = input('请输⼊您的密码:')
print(f'您输⼊的密码是:{password}')
print(f"此处{password}的类型是:", type(password))
# 运行结果:
请输⼊您的密码:123456
您输⼊的密码是:123456
此处123456的类型是: <class 'str'>
3、数据类型的转化
- 数据类型转换的必要性
- 数据类型转换常⽤⽅法
奥特曼在打怪兽的时候,经常切换形态
- 天上飞的:换蓝色
- 地上跑的:换红色
- 能飞能跑的:两个颜色都要有
3.1 转化数据类型的作用
问:input()接收⽤户输⼊的数据都是字符串类型,如果⽤户输⼊1,想得到整型该如何操作?
答:转换数据类型即可,即将字符串类型转换成整型。
3.2 常用方法
函数 | 说明 |
---|---|
int(x) | 将x转化为整数 |
float(x) | 将x转化为浮点数 |
str(x) | 将x转化为字符串 |
eval(str) | 将字符串中的数据转换成Python表达式原本类型 |
tuple(s ) | 将序列 s 转换为⼀个元组 |
list(s ) | 将序列 s 转换为⼀个列表 |
set(s) | 将序列 s 转换为⼀个集合 |
dict(s) | 将序列 s 转换为⼀个字典 |
chr(x ) | 将⼀个整数转换为⼀个Unicode字符 |
ord(x ) | 将⼀个字符转换为它的ASCII整数值 |
hex(x ) | 将⼀个整数转换为⼀个⼗六进制字符串 |
oct(x ) | 将⼀个整数转换为⼀个⼋进制字符串 |
bin(x ) | 将⼀个整数转换为⼀个⼆进制字符串 |
快速体验
# 1. 接收⽤户输⼊
num = input('请输⼊您的幸运数字:')
# 2. 打印结果
print(f"您的幸运数字是{num}")
# 3. 检测接收到的⽤户输⼊的数据类型 -- str类型
print(type(num))
# 4. 转换数据类型为整型 -- int类型
print(type(int(num)))
# 运行结果:
请输⼊您的幸运数字:520
您的幸运数字是520
<class 'str'>
<class 'int'>
实例1
data = 123456 # 整型
data1 = float(data) # 转化为浮点型
print(f"整型{data}--转化为浮点型--float()结果是: ", data1, type(data1))
data = 123.456 # 浮点型
data1 = int(data) # 转化为整型
print(f"浮点型{data}--转化为整型--int()结果是: ", data1, type(data1))
data = "123456" # 长得像整型的字符串
data1 = int(data) # 转化为整型
print(f"长得像整型的字符串{data}--转化为整型--int()结果是; ", data1, type(data1))
data = "123456" # 长得像整型的字符串
data1 = float(data) # 转化为浮点型
print(f"长得像整型的字符串{data}--转化为浮点型--float()结果是: ", data1, type(data1))
data = "123.456" # 长得像浮点型的字符串
data1 = float(data) # 转化为浮点型
print(f"长得像浮点型的字符串{data}--转化为浮点型--float()结果是: ", data1, type(data1))
data = "123.456" # 长得像浮点型的字符串
data1 = int(data) # 转化为整型
print(f"长得像浮点型的字符串{data}--转化为整型--int()结果是: ", data1,type(data1))
# 运行结果:
整型123456--转化为浮点型--float()结果是: 123456.0 <class 'float'>
浮点型123.456--转化为整型--int()结果是: 123 <class 'int'>
长得像整型的字符串123456--转化为整型--int()结果是; 123456 <class 'int'>
长得像整型的字符串123456--转化为浮点型--float()结果是: 123456.0 <class 'float'>
长得像浮点型的字符串123.456--转化为浮点型--float()结果是: 123.456 <class 'float'>
ValueError: invalid literal for int() with base 10: '123.456' # 报错结果,长得像浮点型的字符串不能直接用int
小结:
- 整型和浮点型之间可以用int()和float()相互转化;
- 长得像整型的字符串,可以用int()转化为整型,也可以用float()转化为浮点型;
- 长得像浮点型的字符串,不能直接用int()转化为整型,可以用float()转化为浮点型,再用int()转化为整型。
实例2
# 1. tuple() -- 将⼀个序列转换成元组
list1 = [10, 20, 30]
print(tuple(list1))
print(type(tuple(list1)))
# 运行结果:
(10, 20, 30)
<class 'tuple'>
# 2. list() -- 将⼀个序列转换成列表
t1 = (100, 200, 300)
print(list(t1))
print(type(list(t1)))
# 运行结果:
[100, 200, 300]
<class 'list'>
# 3. eval() -- 将字符串中的数据转换成Python表达式原本类型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(1000, 2000, 3000)'
print(type(eval(str1)))
print(type(eval(str2)))
print(type(eval(str3)))
# 运行结果:
<class 'int'>
<class 'list'>
<class 'tuple'>
# -*- coding:utf-8 -*-
dict1 = {'name': '张三', 'age': 20, 'love': '篮球'}
print(list(dict1))
print(tuple(dict1))
print(set(dict1))
list1 = [("name", "张三"), ("age", 20), ("love", "篮球")]
data1 = dict(list1)
print(data1)
tuple1 = (("name", "张三"), ("age", 20), ("love", "篮球"))
data2 = dict(tuple1)
print(data2)
set1 = {("name", "张三"), ("age", 20), ("love", "篮球")}
data3 = dict(set1)
print(data3)
# 运行结果:
['name', 'age', 'love']
('name', 'age', 'love')
{'name', 'age', 'love'}
{'name': '张三', 'age': 20, 'love': '篮球'}
{'name': '张三', 'age': 20, 'love': '篮球'}
{'age': 20, 'love': '篮球', 'name': '张三'}
序列之间的类型转换:
1、元组、列表、集合是可以相互转换类型的;
2、一般情况下,元组、列表、集合 不能用dict()转换成字典,除非像上面这样的特殊形式才可以转换成字典;
3、字典 可以转换成元组、列表和集合,但是只会获取到key值。