Python编程从入门到实践 第七章:用户输入和while循环 练习答案记录

news2024/12/24 2:09:08

Python编程从入门到实践 第七章:用户输入和while循环 练习答案记录

练习题导航

  • Python编程从入门到实践 第七章:用户输入和while循环 练习答案记录
  • 7.1 函数input()的工作原理
    • 7.1.1 编写清晰的程序
    • 7.1.2 使用int()来获取数值输入
    • 7.1.3 求模运算符
      • 练习7-1 汽车租赁 : 编写一个程序, 询问用户要租赁什么样的汽车, 并打印一条消息, 如“Let me see if I can find you a Subaru”。
      • 练习7-2 餐馆订位 : 编写一个程序, 询问用户有多少人用餐。 如果超过8人, 就打印一条消息, 指出没有空桌; 否则指出有空桌。
      • 练习7-3 10的整数倍 : 让用户输入一个数字, 并指出这个数字是否是10的整数倍。
  • 7.2 while循环
    • 7.2.1 使用while循环
    • 7.2.2 让用户选择何时退出
    • 7.2.3 使用标志
    • 7.2.4 使用break退出循环
    • 7.2.5 在循环中使用continue
      • 练习7-4 比萨配料 : 编写一个循环, 提示用户输入一系列的比萨配料, 并在用户输入'quit' 时结束循环。 每当用户输入一种配料后,都打印一条消息, 说我们会在比萨中添加这种配料。
      • 练习7-5 电影票 : 有家电影院根据观众的年龄收取不同的票价: 不到3岁的观众免费; 3~12岁的观众为10美元; 超过12岁的观众为15美元。
      • 练习7-6 三个出口 : 以另一种方式完成练习7-4或练习7-5, 在程序中采取如下所有做法。
      • 练习7-7 无限循环 : 编写一个没完没了的循环, 并运行它(要结束该循环, 可按Ctrl +C, 也可关闭显示输出的窗口) 。
  • 7.3 使用while循环处理列表和字典
    • 7.3.1 在列表之间移动元素
    • 7.3.2 删除为特定值的所有列表元素
    • 7.3.3 使用用户输入来填充字典
      • 练习7-8 熟食店 : 创建一个名为sandwich_orders 的列表, 在其中包含各种三明治的名字; 再创建一个名为finished_sandwiches 的空列表。
      • 练习7-9 五香烟熏牛肉(pastrami) 卖完了 : 使用为完成练习7-8而创建的列表sandwich_orders ,并确保'pastrami' 在其中至少出现了三次。 在程序开头附近添加这样的代码: 打印一条消息, 指出熟食店的五香烟熏牛肉卖完了;再使用一个while 循环将列表sandwich_orders 中的'pastrami' 都删除。 确认最终的列表finished_sandwiches 中不包含'pastrami' 。
      • 练习7-10 梦想的度假胜地 : 编写一个程序, 调查用户梦想的度假胜地。
  • 7.4 小结

7.1 函数input()的工作原理

7.1.1 编写清晰的程序

7.1.2 使用int()来获取数值输入

7.1.3 求模运算符

练习7-1 汽车租赁 : 编写一个程序, 询问用户要租赁什么样的汽车, 并打印一条消息, 如“Let me see if I can find you a Subaru”。

bus=input("What are you wan to bus:")
print(f"Let me see if I can find you a {bus}")

在这里插入图片描述

练习7-2 餐馆订位 : 编写一个程序, 询问用户有多少人用餐。 如果超过8人, 就打印一条消息, 指出没有空桌; 否则指出有空桌。

people=input("How many you are want to invite people:")
people=int(people)
if people>8:
    print("没有空座")
else:
    print("有空座")

在这里插入图片描述

练习7-3 10的整数倍 : 让用户输入一个数字, 并指出这个数字是否是10的整数倍。

digit=input("输入一个数字:")
digit=int(digit)
if digit%10==0:
    print(f"{digit} 是10的整数倍")
else:
    print(f"{digit} 不是10的整数倍")

在这里插入图片描述

7.2 while循环

7.2.1 使用while循环

7.2.2 让用户选择何时退出

7.2.3 使用标志

7.2.4 使用break退出循环

7.2.5 在循环中使用continue

练习7-4 比萨配料 : 编写一个循环, 提示用户输入一系列的比萨配料, 并在用户输入’quit’ 时结束循环。 每当用户输入一种配料后,都打印一条消息, 说我们会在比萨中添加这种配料。

pisa=" "
while pisa!='quit':
    pisa=input("输入一种披萨配料:")
    if pisa!='quit':
        print(f"我们会在披萨中添加 {pisa} 配料")

在这里插入图片描述

练习7-5 电影票 : 有家电影院根据观众的年龄收取不同的票价: 不到3岁的观众免费; 3~12岁的观众为10美元; 超过12岁的观众为15美元。

请编写一个循环, 在其中询问用户的年龄, 并指出其票价。

age=" "
while age!=-1:
    age=input("输入观众年龄:")
    age=int(age)
    if age>12:
        print("15$")
    elif age>3:
        print("10$")
    elif age<=3 and age>0:
        print("0$")
    else:
        break

在这里插入图片描述

练习7-6 三个出口 : 以另一种方式完成练习7-4或练习7-5, 在程序中采取如下所有做法。

在while 循环中使用条件测试来结束循环。
使用变量active 来控制循环结束的时机。 使用break 语句在用户输入’quit’
时退出循环。

active=True
while active!=False:
    age=input("输入观众年龄:")
    age=int(age)
    if age>12:
        print("15$")
    elif age>3:
        print("10$")
    elif age<=3 and age>0:
        print("0$")
    else:
        active=False

在这里插入图片描述

练习7-7 无限循环 : 编写一个没完没了的循环, 并运行它(要结束该循环, 可按Ctrl +C, 也可关闭显示输出的窗口) 。

7.3 使用while循环处理列表和字典

7.3.1 在列表之间移动元素

7.3.2 删除为特定值的所有列表元素

7.3.3 使用用户输入来填充字典

练习7-8 熟食店 : 创建一个名为sandwich_orders 的列表, 在其中包含各种三明治的名字; 再创建一个名为finished_sandwiches 的空列表。

遍历列表sandwich_orders , 对于其中的每种三明治, 都打印一条消息, 如I made your tuna sandwich,并将其移到列表finished_sandwiches 。
所有三明治都制作好后, 打印一条消息, 将这些三明治列出来。

sandwich_orders=['a','b','c']
finished_sandwiches=[]
while sandwich_orders:
    sandwich=sandwich_orders.pop()
    print(f"I made your {sandwich} sandwich")
    finished_sandwiches.append(sandwich)
for a in finished_sandwiches:
    print(a)

在这里插入图片描述

练习7-9 五香烟熏牛肉(pastrami) 卖完了 : 使用为完成练习7-8而创建的列表sandwich_orders ,并确保’pastrami’ 在其中至少出现了三次。 在程序开头附近添加这样的代码: 打印一条消息, 指出熟食店的五香烟熏牛肉卖完了;再使用一个while 循环将列表sandwich_orders 中的’pastrami’ 都删除。 确认最终的列表finished_sandwiches 中不包含’pastrami’ 。

sandwich_orders=['pastrami','a','pastrami','b','c','pastrami']
finished_sandwiches=[]
print('pastrami'+"卖完了")
while 'pastrami'in sandwich_orders:
    sandwich_orders.remove('pastrami')
while sandwich_orders:
    sandwich=sandwich_orders.pop()
    print(f"I made your {sandwich} sandwich")
    finished_sandwiches.append(sandwich)
for a in finished_sandwiches:
    print(a)

在这里插入图片描述

练习7-10 梦想的度假胜地 : 编写一个程序, 调查用户梦想的度假胜地。

使用类似于“If you could visit one place in the world, where would you go?”的提示, 并编写一个打印调查结果的代码块.

travel={}
ends='yes'
while ends!='no':
    location=input("请输入想去的地方:")
    people=input("带哪个朋友:")
    travel[location]=people
    ends=input("是否继续\'yes or no\'")
for m,n in travel.items():
    print(f"输入想去的地方:{m} 带哪个朋友:{n}")

在这里插入图片描述

7.4 小结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC学习篇(十)

springmvc拦截器之重复提交 1 出现原因 在新增和修改界面点击提交后(转发的方式跳转) 再次刷新页面,如果不做处理的话,会造成重复提交, 从而使得新增商品多次或者更改商品多次2 解决方案 2.1 准备工作 导入servlet-api依赖和spring-webmvc依赖 <dependency><group…

限流的几种方式及简单实现

文章目录计数器信号量滑动窗口漏桶令牌桶测试示例代码计数器 计数器限流方式比较粗暴&#xff0c;一次访问就增加一次计数&#xff0c;在系统内设置每 N 秒的访问量&#xff0c;超过访问量的访问直接丢弃&#xff0c;从而实现限流访问。 具体大概是以下步骤&#xff1a; 将时…

Spring Security认证之登录用户数据获取

本文内容来自王松老师的《深入浅出Spring Security》&#xff0c;自己在学习的时候为了加深理解顺手抄录的&#xff0c;有时候还会写一些自己的想法。 登录用户数据获取 登录成功之后&#xff0c;在后续的业务逻辑中开发者可能还需要获取到登录成功的用户对象&#xff0c;如果不…

轻松学会JavaScript事件

文章目录事件与事件流事件监听&#xff08;绑定事件方法&#xff09;JavaScript事件鼠标事件表单事件键盘事件UI事件快速投票事件可以说是JavaScript最引人注目的特性&#xff0c;因为它提供了一个平台&#xff0c;让用户不仅能浏览页面中的内容&#xff0c;而且能跟页面进行交…

贪心算法+动态规划 | 眼光不同决定深度不同

前言 上大学那会有门课程叫做【算法与实践】, 算法配上 C 那感觉不要提多爽了。现在回想起来算法不局限于语言&#xff0c;只不过每个语言的语法不一罢了&#xff0c; 但是算法的内在逻辑都是相通的&#xff0c;今天我们通过三个案列来了解分析下算法之一 【贪心算法】。 简介…

显示控件——滑动选择

该控件也是一种调节控件&#xff0c;通过在既定范围内的滑动来选择具体选项值以图达到对变量的调控效果&#xff0c;其UI操作效果类似于拨动密码锁的滚轮。 位置信息&#xff1a;控件在工程页面区域的位置 “X”“Y”为控件区域左上角坐标。 “W”“H”为控件区域宽度和高度&a…

cpu设计和实现(取指)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 cpu设计的本质是数字电路的设计。要是没有verilog、vhdl这些语言&#xff0c;那么剩下来使用的方法基本只有卡诺图这一种了。在数字电路中&#xf…

看懂这篇文章,你就懂了Mybatis的二级缓存

缓存的概述和分类 概述 缓存就是一块内存空间.保存临时数据 为什么使用缓存 将数据源&#xff08;数据库或者文件&#xff09;中的数据读取出来存放到缓存中&#xff0c;再次获取的时候 ,直接从缓存中获取&#xff0c;可以减少和数据库交互的次数,这样可以提升程序的性能&a…

【MySQL】MySQL复制原理与主备一致性同步工作原理解析(原理篇)(MySQL专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

Qt之天气预报实现(一)预备篇

文章目录序章一、思路整理1.1 我的Qt版本信息1.2 我使用的API二、高德开放平台API的申请和使用2.1 API的申请步骤2.1.1 注册高德开放平台账号&#xff08;若已有账号请无视&#xff09;2.1.2 创建API_KEY2.2 API的使用2.2.1 天气查询文档和城市编码下载位置&#xff08;必读&am…

node版本与node-sass版本不兼容时问题解决

在项目运行中会经常遇到node版本号与node-sass版本号不兼容的问题&#xff0c;这时可以有两种解决方案。 附图&#xff1a;node与node-sass的对应关系 1、改node版本号去对应node-sass 2、改node-sass版本号去对应node 一般情况下选择修改node-sass的版本号&#xff0c;这里…

[附源码]SSM计算机毕业设计茶园认养管理平台JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

PGL图学习之图神经网络GNN模型GCN、GAT[系列六]

PGL图学习之图神经网络GNN模型GCN、GAT[系列六] 项目链接&#xff1a;一键fork直接跑程序 https://aistudio.baidu.com/aistudio/projectdetail/5054122?contributionType1 0.前言-学术界业界论文发表情况 ICLR2023评审情况&#xff1a; ICLR2023的评审结果已经正式发布&a…

OPLSAA力场参数之快速建模—MS+Moltemplate

文章目录一、MS中画出分子结构二、根据OPLSAA力场文件设置原子力场1. OPLSAA力场2. 根据OPLSAA力场中的原子质量进行检查3. 在MS中设置为对应的原子编号三、转换为Lammps可以读取的Data文件四、采用Moltemplate自带工具生成Lt文件1. 生成LT文件2. LT文件结构五、引入OPLSAA力场…

Docker 【Nginx集群部署】

目录 1. nginx前置操作 2. 自定义容器 3. nginx常用命令 4. Error 4.1 502(无响应网关/代理) 4.2 404(找不到对应页面) 4.3 400(异常请求) 4.4 响应超时问题 5. 完整版本Nginx配置文件 1. nginx前置操作 1. 下载拉取nginx镜像 docker pull nginx 2. 使用nginx镜像创…

LVS负载均衡群集(DR模式)

LVS-DR工作原理 数据包流向分析 第一步&#xff1a;客户端发送请求到 Director Server (负载均衡器&#xff09;&#xff0c;请求的数据报文到达内核空间。 数据报文 源 IP ------客户端的 IP 目标 IP ------ VIP 源 MAC ------客户端的 MAC 目的 MAC ------ Director Server…

全产业链核心升级 集聚创新大展宏图——慕尼黑华南电子展回顾

展会简介 2022年11月15日至17日&#xff0c;高交会 - 智能制造、先进电子及激光技术博览会旗下成员展 &#xff08;LEAP Expo&#xff09;-慕尼黑华南电子展、慕尼黑华南电子生产设备展、华南先进激光及加工应用技术展览会及同期举办的华南电路板国际贸易采购博览会与中国&…

【全网热点】打造全网最全爱心代码仓库【火速领取爱心】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【代码实践】 目录&#x1f319;正文&#x1f30f;部分效果在线演示&#x1f30f;部分效果截屏&#x1f338;文末祝…

操作系统4小时速成:复习内存管理,内部碎片和外部碎片,页式存储管理,段式存储管理,段页式存储管理,虚拟内存,页面置换算法,LRU内存替换算法

操作系统4小时速成&#xff1a;复习内存管理&#xff0c;内部碎片和外部碎片&#xff0c;页式存储管理&#xff0c;段式存储管理&#xff0c;段页式存储管理&#xff0c;虚拟内存&#xff0c;页面置换算法,LRU内存替换算法 2022找工作是学历、能力和运气的超强结合体&#xff…

react面试题详解

React-Router怎么设置重定向&#xff1f; 使用<Redirect>组件实现路由的重定向&#xff1a; <Switch><Redirect from/users/:id to/users/profile/:id/><Route path/users/profile/:id component{Profile}/> </Switch>当请求 /users/:id 被重定…