首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >函数使用布尔输入,而不打印预期结果。

函数使用布尔输入,而不打印预期结果。
EN

Stack Overflow用户
提问于 2014-03-10 20:16:13
回答 2查看 121关注 0票数 0

很抱歉在这个时候打扰你,但我真的在为一个节目而挣扎。我正在处理一个python项目,我有一套非常具体的指令要遵循。在主模块中使用本地命名常量,用于计算座位成本和将传递给以下各点描述的模块和函数的区段座位限制。这是说明。

虽然问题中有三个座位部分,但将根据所通过的参数为任何一节创建一套通用函数。这些函数将对每个部分调用一次: A、B和C。这些函数的一般逻辑描述如下:

(1)包含输入函数(getTickets),该函数以给定区段的节号和座位限制为参数。返回给定区段的票数。此函数只应返回有效数量的票证;应该从该函数调用验证函数ticketsValid。

(2)包含验证函数(ticketsValid),它将每个区段售出的票和每个区段的座位限制作为传递参数。返回一个布尔值,指示为给定区段出售的传递的票证是否在有效范围内。这个验证函数将从先前定义的getTickets函数中调用。

(3)包括收入计算函数(calcIncome),该函数以售票和座位成本为传递参数,并返回该部分产生的收入。

现在我的问题是,我不明白为什么我的验证器不能正常工作。我把它放在另一个函数中,但是当我运行代码时,它跳过了所有的验证。这是我的代码,任何帮助都是非常感谢的。再次感谢你这么晚的帮助!)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def Main():

    aPrice=20
    bPrice=15
    cPrice=10
    alimit=100
    blimit=500
    climit=200
    ticketSold=0
    getTickets(alimit)
    calcIncome(ticketSold,aPrice)
    getTickets(blimit)
    calcIncome(ticketSold,bPrice)
    getTickets(alimit)
    calcIncome(ticketSold,cPrice)


def getTickets(limit):

    ticketSold =int(input("How many tickets were sold in section? "))
    ticketsValid(ticketSold,limit)
    return ticketSold

def ticketsValid(ticketSold,limit):

    if (ticketSold>limit | ticketSold<0):
        print ("ERROR: Section A needs to be a number between 0 and 300")

def calcIncome(ticketSold,price):

    totalIncome= (price*ticketSold)
    print ("The total income for the theater section is "+str(totalIncome))

Main()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-10 20:27:37

  1. 这里:ticketSold>limit | ticketSold<0|更改为or,它将工作。
  2. 你的calcIncome得到的是ticketSold = 0,而不是新计算的收入。这是因为在函数中使用的同名变量是本地变量,它在函数之外是不可见的。要修复它,请使用ticketSold = getTickets(alimit)。一般来说,如果函数应该进行一些计算,而不是使用全局变量,那么最好让它们返回一些内容: def calcIncome(ticketSold,价格):返回价格*ticketSold totalIncome = calcIncome(ticketSold,cPrice)打印totalIncome
票数 1
EN

Stack Overflow用户

发布于 2014-03-11 13:10:53

让我们逐一回顾一下您的需求。

在主模块中使用本地命名常量,用于计算座位成本和将传递给以下各点描述的模块和函数的区段座位限制。

因此,有一个主模块,它有一个本地名为常量。这很简单。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def income():
    SECTION_A = dict('name': 'A', 'seats': 100, 'price': 20)
    SECTION_B = dict('name': 'B', 'seats': 500, 'price': 15)
    SECTION_C = dict('name': 'C', 'seats': 200, 'price': 10)

每一个常量都是一本有三个插槽的字典。

虽然问题中有三个座位部分,但将根据传递的参数为任何给定部分创建一组通用函数。这些函数将对每个部分调用一次: A、B和C。这些函数的一般逻辑描述如下: (1)包含输入函数(getTickets),该函数以给定区段的节号和座位限制为参数。返回给定区段的票数。此函数只应返回有效数量的票证;应该从该函数调用验证函数ticketsValid

基本要求是,如果ticketsValid返回false,则函数不得返回。我想这意味着我们需要循环并再次询问,如果不是。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    def getTickets(section_letter, seat_limit):
        while True:
            print "Tickets sold for section %s (max %d):" % (section_letter, seat_limit)
            reply = int(input())
            if ticketsValid(reply, seat_limit):
                return reply
            else:
                print "Sorry, try again."

如果不能将输入强制输入到int中,这将失败,但对于第一次分配,这可能是可以接受的。

2.)包含验证函数(ticketsValid),它将每个区段售出的票和每个区段的座位限制作为传递参数。返回一个布尔值,指示为给定区段出售的传递的票证是否在有效范围内。这个验证函数将从先前定义的getTickets函数中调用。

如果我正确理解,“有效范围”意味着我们的销售不得超过座位限制,或一个负数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    def ticketsValid(number, seat_limit):
        if 0 <= number <= seat_limit:
            return True
        else:
            return False

把它放在一个单独的函数IMHO中是没有意义的,尽管调用函数可能通过分解这个函数而变得更简单。

3.)包括收入计算函数(calcIncome),它将门票销售和座位成本作为传递参数,并返回为该区段生成的收入。

再一次,这是如此琐碎,以致于愚蠢地加入一个单独的函数,但如果计算在未来会改变(加增值税!(将百分比复制至失业基金!)把它放在一个地方可能更好。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    def calcIncome(tickets_sold, seat_cost):
        return tickets_sold*seat_cost

现在留给你们的是把这些部分连接到一个有意义的整体上。请记住将每个函数的返回值赋给一个变量!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    for section in [SECTION_A, SECTION_B, SECTION_C]:
        tickets_sold = getTickets(section['name'], section['seats'])
        ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22316356

复制
相关文章
cmd - bat文件如何关闭回显
echo是回显命令,会将echo后的内容输出到cmd窗口中,比如在一个Test.bat文件中输入如下命令:
雨临Lewis
2022/01/11
2.3K0
日常技巧-命令无回显实战Tips
https://weibell.github.io/reverse-shell-generator/#
hyyrent
2022/12/26
1.2K0
日常技巧-命令无回显实战Tips
SpringMVC【参数绑定、数据回显、文件上传】
前言 本文主要讲解的知识点如下: 参数绑定 数据回显 文件上传 参数绑定 我们在Controller使用方法参数接收值,就是把web端的值给接收到Controller中处理,这个过程就叫做参数绑定… 默认支持的参数类型 从上面的用法我们可以发现,我们可以使用request对象、Model对象等等,其实是不是可以随便把参数写上去都行???其实并不是的… Controller方法默认支持的参数类型有4个,这4个足以支撑我们的日常开发了 HttpServletRequest HttpServletResponse
Java3y
2018/04/02
1.4K0
SpringMVC【参数绑定、数据回显、文件上传】
如何将 Linux 命令输出重定向到文件?
在Linux系统中,命令行是非常强大和灵活的工具。它允许我们执行各种任务和操作,包括将命令的输出保存到文件中。本文将介绍如何使用重定向操作符将Linux命令的输出导入到文件中,并列举尽可能多的命令示例。
网络技术联盟站
2023/07/14
1.7K0
如何将 Linux 命令输出重定向到文件?
如何将 Linux 命令输出重定向到文件?
在Linux系统中,命令行是非常强大和灵活的工具。它允许我们执行各种任务和操作,包括将命令的输出保存到文件中。本文将介绍如何使用重定向操作符将Linux命令的输出导入到文件中,并列举尽可能多的命令示例。
网络技术联盟站
2023/08/03
1.9K0
如何将 Linux 命令输出重定向到文件?
bootstrap fileinput 文件上传和回显「建议收藏」
官网下载文件http://plugins.krajee.com/file-input/demo
全栈程序员站长
2022/08/15
2.8K0
表单数据回显
  在数据提交出现错误的时候, 已填写的信息仍在文本框中, 比如用户登录, 当用户输入错误的密码之后, 用户名仍在文本框, 只是密码框清空
Twcat_tree
2022/11/30
1.2K0
表单数据回显
命令执行/SQL盲注无回显外带方式
在渗透测试中我们时常会遇到一些无回显的场景,如常见的:SQL盲注、命令执行、XSS、SSRF、Blind XXE等漏洞,这时就需要利用第三方dnslog/httplog平台才能将数据和命令执行结果外带出来。
潇湘信安
2022/09/14
2.4K0
命令执行/SQL盲注无回显外带方式
输入网址到回显页面,经历了哪些过程
浏览器第一步工作就是要对输入的URL进行解析,从而确定发送给Web服务器的请求信息。
shysh95
2021/12/27
1.2K0
输入网址到回显页面,经历了哪些过程
Python3 执行系统命令并获取实时回显
最近在改造一些打包的逻辑,原来在 Windows 下是基于批处理制作的,由于批处理用起来不是很方便,一些实时的计算基本无法胜任,所以转向 Python3。但在以前脚本的基础上很多是需要调用系统命令的比如 VS 编译一个项目,我们需要获取实时的回显知道编译的结果和进度。所以就有了以下方法:
我与梦想有个约会
2023/10/21
4580
执行Get-NetTCPConnection没有回显,但是执行netstat -ano有回显
问题:执行Get-NetTCPConnection没有回显,但是执行netstat -ano有回显,如下图
Windows技术交流
2023/09/12
2190
element级联选择器表单回显_级联选择器 数据回显
此方法主要参考这位大神:https://segmentfault.com/u/li…
全栈程序员站长
2022/08/04
1.2K0
模糊测试之攻击回显
描述:一个渗透安全工程师常常会在,某些安全测试项目中遇到,代码或者命令可以被执行,但是无任何的回显特征来判断攻击成功,
全栈工程师修炼指南
2022/09/28
2.4K0
模糊测试之攻击回显
技术分析|XXE环境搭建及实战 包含有回显无回显操作
搭建说明:安装xampp后,htdocs目录放入靶机项目,然后开启apache、mysql访问即可
陈殷
2020/03/06
2.6K0
JS 递归 数组嵌套回显
第一种: // 查询部门信息 seeBranch(data,id){ function find(data, fn, result) { data.forEach(item => { if(item.id===id){ result.push(item) }else if (item.children.length>0) { find(item.children, fn, result) } else { if (f
我不是费圆
2022/05/09
4K0
短信验证码回显
由于网站程序开发人员在设计验证码时为了方便使用,会选择将验证码回显在响应中,来判断用户输入的验证码是否和响应中的验证码一致,如果一致就会通过身份校验。攻击者可以通过拦截数据包等手段获取短信验证码值,根据短信验证码使用场景的不同,将会导致任意账户登录、任意密码重置、用户身份盗用等更多高危的风险产生。
LuckySec
2022/11/15
9K0
短信验证码回显
模糊测试之攻击回显
描述:一个渗透安全工程师常常会在,某些安全测试项目中遇到,代码或者命令可以被执行,但是无任何的回显特征来判断攻击成功,
全栈工程师修炼指南
2020/10/23
3.1K0
模糊测试之攻击回显
element ui toggleRowSelection 回显无效
组件初始加载时, 通过外部接口拉取需要设置的表格项数据. 通过表格实例方法toggleRowSelection 设置已选项无效.
copy_left
2022/09/30
1.4K0
Linux怎么复制文件到其他文件夹
本文主要讲解linux怎么复制文件到其他文件夹。 在Linux和Unix系统上工作时,复制文件和目录是您每天要执行的最常见任务之一。 cp是一个命令行实用程序,用于复制Unix和Linux系统上的文件和目录。在本文中,我们将解释如何使用cp命令。
狼啸风云
2021/04/13
15.7K0
利用DNS协议回显数据
这个问题已经是去年提出的了,之前也看到过,在 CTF 题目环境中利用过却对原理不慎了解,在公司大佬们的帮助下成功了理解了一波原理。
信安之路
2018/08/08
2.3K0
利用DNS协议回显数据

相似问题

无法从cordova Android应用程序访问图书馆资源

10

Android图书馆资源

22

访问图书馆资源的Android应用程序

10

如何读取"Android图书馆项目“中的资产资源

23

用Ant构建Android项目中的图书馆资源

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文