当前位置: 首页 > news >正文

Python语法入门之与用户交互与格式化输出

Python语法入门之与用户交互与格式化输出

文章目录

  • Python语法入门之与用户交互与格式化输出
    • 一、程序与用户交互
      • 1.1、什么是与用户交互
      • 1.2、为什么要与用户交互?
      • 1.3、如何与用户交互
    • 二、格式化输出
      • (1)什么是格式化输出?
      • (2)为什么要格式化输出?
      • (3)如何格式化输出?
      • (4)格式化输出总结:

一、程序与用户交互

1.1、什么是与用户交互

用户交互就是人往计算机中input/输入数据,计算机print/输出结果

1.2、为什么要与用户交互?

为了让计算机能够像人一样与用户沟通交流

比如,过去我们去银行取钱,用户需要把帐号密码告诉柜员,而现在,柜员被ATM机取代,ATM机就是一台计算机,所以用户同样需要将帐号密码告诉计算机,于是我们的程序中必须有相应的机制来控制计算机接收用户输入的内容,并且输出结果

1.3、如何与用户交互

交互的本质就是输入(input)、输出(print)

  • 接收用户输入 input
?"input"会将用户输入的内容都转化成字符串类型
name = input("请输入你的名字>>")  #输入"shawn"
print(name)   #shawn
passwd = input("请输入密码>>")   #"123"
print(type(passwd))   #<class 'str'>
  • Python2与Python3—input比较(了解)
?python2中"input"有两种
1. "raw_input",等同于Python3中的"input"
2. "input",需要用户输入一个明确的数据类型,输入的什么类型就存成什么类型
  • 输出(print)
x = 1
y = 2
z = 3
print(x)  #1
print(2)  #2
print(x,y,z)  #1,2,3
?"print"默认自带"\n"
可以使用'end=""'来取消

二、格式化输出

(1)什么是格式化输出?

把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出。

(2)为什么要格式化输出?

我们经常会输出具有某种固定格式的内容,

现有一需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

------------ info of 淘小欣  -----------
Name  : 淘小欣
Age   : 22
job   : liberal professions
Hobbie: girl
------------- end -----------------

你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势

(3)如何格式化输出?

综上,只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符(%),再把字符串里的占位符与外部的变量做个映射关系就好啦

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("hobbie:")

info = '''
------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
Name  : %s  #代表 name 
Age   : %s  #代表 age  
job   : %s  #代表 job 
Hobbie: %s  #代表 hobbie 
------------- end -----------------
''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 

print(info)

%s就是代表字符串占位符,除此之外,还有**%d,**是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

age     : %d

我们运行一下,但是发现出错了。

Traceback (most recent call last):
  File "F:/python_16/day 15/atm.py", line 277, in <module>
    info = '''
TypeError: %d format: a number is required, not str
#说%d需要一个数字,而不是str。

怎么看呢?查看数据类型的方法是什么来着?type()

name = input("Name:")
age = input("Age:")
print(type(age))

执行输出是

Name:淘小欣
Age:22
<class 'str'> #怎么会是str
Job:IT

**因为input接收的所有输入默认都是字符串格式!**你可以把str转成int

age = int(  input("Age:")  )
print(type(age))

同时可以把字符串转成数字str( yourStr )

问题:现在有这么行代码

msg = "我是%s,年龄%d,目前学习进度为80%"%('淘小欣',18)
print(msg)

这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?

msg = "我是%s,年龄%d,目前学习进度为80%%"%('淘小欣',18)
print(msg)

这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。

(4)格式化输出总结:

  • 1.%格式化输出
# 按照位置顺序传值,一一对应
msg = "my name is %s" %('shawn')
msg = "my name is %s,my age is %s" %('shawn',22)
print(msg)
  • 2.xxx.format : (2.6版本推出,兼容版本2与3)
# 按照位置顺序传值
msg = "my name is {}".format('shawn')
msg = "my name is {},my age is {}".format('shawn',22)

?通过索引取值
msg = "my name is {0} {1} {0},my age is {1}".format('shawn',22)
#从左到右括号的值:Shawn,22,Shawn,22
  • 3.f"{}" : 格式化输出(3.6版本开始支持)
?直接传入变量名
name = "shawn"
age = 22
print(f"my name is {name},my age is {age}")

ps :速度对比: f'{}'> str.format(推荐使用) > %

相关文章:

  • python之数据类型之可变与不可变类型
  • python流程控制之for循环
  • python流程控制之while循环
  • Python语法入门之流程控制if判断
  • IDE集成开发环境的基本使用
  • Python实战演练:ATM + 购物车项目开发
  • 博客搬家通告!
  • python之深浅copy
  • python小数据池,代码块的深入剖析
  • 软件开发的目录规范
  • Linux前身今世
  • linux操作系统虚拟机安装
  • python之数字类型内置方法
  • python之字符串类型内置方法
  • python之列表类型内置方法
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Linux Process Manage
  • Linux中的硬链接与软链接
  • Netty源码解析1-Buffer
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Spring框架之我见(三)——IOC、AOP
  • SwizzleMethod 黑魔法
  • 闭包,sync使用细节
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 模型微调
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端路由实现-history
  • 算法---两个栈实现一个队列
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 原生Ajax
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (力扣)循环队列的实现与详解(C语言)
  • (南京观海微电子)——I3C协议介绍
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Project Open Day(2011.11.13)
  • .NET 常见的偏门问题
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET文档生成工具ADB使用图文教程
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .sh
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具