【Python基础】2、输入输出与数据类型转化

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.50print('我的名字是%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值。


猜你喜欢

转载自blog.csdn.net/weixin_43498642/article/details/129846847