小编use*_*511的帖子

堆栈计算器(后缀,Python)

我遇到的问题是计算后缀形式表达式:例如,(1, 2, '+', 3, '*')。

通过使用以下算法计算表达式: 1. 如果表达式仅包含整数,则返回该整数。2. 否则,维护一个堆栈。循环遍历元组并将每个元素推入堆栈。如果该元素是运算符,则将前两个元素弹出堆栈,计算结果并将结果压入堆栈。为了说明这一点,我们以上面的例子为例。最初,堆栈是空的。测试用例是

calculate((1, 2, '*', 3, '-', 2, '*', 5, '+'))  
3
Run Code Online (Sandbox Code Playgroud)

而我的第一个代码不好(硬编码和所有 >< ):

def calculate(inputs):
    if len(inputs) ==1:
        return inputs[0]
    elif len(inputs) == 5:
        s= []
        push_stack(s, inputs[0])
        push_stack(s, inputs[1])
        if inputs[2] == '*':
            A = s.pop() * s.pop()
        elif inputs[2] == '+':
            A = s.pop() + s.pop()
        elif inputs[2] == '-':
            A= s.pop() - s.pop()
        elif inputs[2] == '/':
            A = s.pop() / s.pop()
        s.clear()
        s= [A]
        push_stack(s, inputs[3])
        if …
Run Code Online (Sandbox Code Playgroud)

python

2
推荐指数
1
解决办法
2万
查看次数

在Python中尝试和除外

我的代码是:

def less_than_equal(start_day, start_mon, start_year, \
                end_day, end_mon, end_year):
    try:
        start_day <= end_day and start_mon <= end_mon
        return True
    except:
        start_day > end_day or start_mon > end_mon or start_year >end_year
        print("Start date must be less than or equal end date.")
Run Code Online (Sandbox Code Playgroud)

哪里

>>> less_than_equal(12, 4, 1111, 12, 5, 1111)
True
>>> less_than_equal(12, 7, 1111, 12, 5, 1111)
"Start date must be less than or equal end date."  (but my code gives True)
>>> less_than_equal(17, 7, 1111, 12, 5, 1111)
"Start date …
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
340
查看次数

编写递归函数但得到无限循环

我正在使用Python,我的任务是编写一个递归循环.想法是形成一个垂直行的图片:

1st row: 1 object  (2**0)
2nd row: 2 object  ( 2**1)
3rd row: 4 obj      (2**2)
4th:     8 obj       (2**3)
Run Code Online (Sandbox Code Playgroud)

等等直到n行和n列.

通过使用"堆栈"和"旁边"函数,我需要制定该模式.

我的代码是:

def fractal(Pattern, n):
    if n== 1:
        return beside( Pattern, n)
    else:
        return beside( fractal(Pattern, n-1), fractal(Pattern, n))
Run Code Online (Sandbox Code Playgroud)

但是,当我想显示整体模式时,会出现无限循环.

python recursion loops image

0
推荐指数
1
解决办法
399
查看次数

获取非负整数的位数(Python)

问题是:

<<背景故事:假设我们正在设计一个新的汉堡关节的销售点和订单跟踪系统.这是一个小型联合,它只出售4种组合选择:经典单人组合(汉堡配一个馅饼),经典双人奶酪组合(2个馅饼),经典三人配奶酪组合(3个馅饼),前卫四人组合Guacamole Combo(4个小馅饼).我们将这些组合分别编码为1,2,3和4.每餐的体型都很大,可以买到更大的薯条和饮料.对于组合1,2,3和4,大尺寸组合分别由5,6,7和8表示.>>

编写一个名为order_size的迭代函数,它接受一个顺序并返回顺序中的组合数.例如,order_size(237) - > 3.

我应该有

order_size(0) = 0

order_size(6) = 1

order_size(51) = 2

order_size(682) = 3
Run Code Online (Sandbox Code Playgroud)

我的代码是:

def order_size(order):

    # Fill in your code here
    if order > 0:
        size = 0
        while order > 0:
            size +=  1
            order = order // 10
            return size
        else:
            return 0
Run Code Online (Sandbox Code Playgroud)

但我没有得到// 10部分的订单.我猜这是错的,但我想不出任何东西可以替代它.

python numbers digits sizing

-1
推荐指数
1
解决办法
9062
查看次数

标签 统计

python ×4

digits ×1

image ×1

loops ×1

numbers ×1

recursion ×1

sizing ×1