Стектік калькулятор кері поляк жазбасындағы өрнекті орындайды (токендер бос орынмен бөлінген):
st = []
def run(src):
for t in src.split():
if t.isdigit():
st.append(int(t))
elif t == "dup":
st.append(st[-1])
elif t == "swap":
st[-1], st[-2] = st[-2], st[-1]
else:
b = st.pop()
a = st.pop()
st.append(a + b if t == "+" else a - b if t == "-" else a * b)
return st[-1]
Әр сұрақ алдыңғы сұрақтарға тәуелсіз, st жаңадан [] болып басталады деп есептеңіз (бір сұрақ ішіндегі шақырулар st-ті ортақ пайдаланады).
print(run("12 4 /")) қандай мән шығарады?
Дұрыс жауабы мен түсіндірмесі
Жауабы: 48
"/" таңбасы "+" та, "-" та емес, сондықтан соңғы тармақ (a * b) орындалады: 12 · 4 = 48. Бөлу орындалмайды.
«Python программалау тілінде алгоритмдерді программалау» тақырыбынан тағы
- Соңғы жолдағы print операторы не басып шығарады? d = 'a': 1 e = d d = d, 'b': 2 e['c'] = 3 print(d, e)
- Python модулін оның мақсатымен сәйкестендіріңіз.
- print(len(rows), repr(rows[3]["score"])) қандай нәтиже шығарады?
- print(len(total), total["u1"], len(log)) нәтижесі қандай?
- Python өрнегінің нәтижесі қандай? print(1 < 2 < 3, 1 < 3 > 2, 3 > 2 > 2, 1 == 1 != 2, 2 < 1 < 3 / 0)
- Стек бос күйінде run("6 -2 *") шақырылса, не болады?
- Python-да қай өрнектердің мәні True?
- Код орындалғанда консольге қандай жол шығады? g = (x * 2 for x in range(5)) print(sum(g), sum(g), list(g))