我遇到的问题是计算后缀形式表达式:例如,(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) 我的代码是:
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,我的任务是编写一个递归循环.想法是形成一个垂直行的图片:
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)
但是,当我想显示整体模式时,会出现无限循环.
问题是:
<<背景故事:假设我们正在设计一个新的汉堡关节的销售点和订单跟踪系统.这是一个小型联合,它只出售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部分的订单.我猜这是错的,但我想不出任何东西可以替代它.