import%20marimo%0A%0A__generated_with%20%3D%20%220.7.17%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20return%20mo%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%23%23%23%20S%C3%B3%20express%C3%B5es%20produzem%20resultado%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20x%20%3D%201%20%23%20atribui%C3%A7%C3%A3o%20%C3%A9%20comando%2Finstru%C3%A7%C3%A3o%2Fdeclara%C3%A7%C3%A3o%0A%20%20%20%20return%20x%2C%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%202%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%23%23%23%20S%C3%B3%20express%C3%B5es%20podem%20'aparecer%20dentro'%20(ser%20subexpress%C3%B5es)%20de%20express%C3%B5es%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20%23f%20%3D%20lambda%20x%3A%20x%20%3D%20x%20%2B%201%20%20%23%20erro%20de%20sintaxe%0A%20%20%20%20inc%20%3D%20lambda%20x%3A%20x%20%2B%201%0A%20%20%20%20%23inc(y%3D2)%20%20%23%20erro%0A%20%20%20%20return%20inc%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22As%20instru%C3%A7%C3%B5es%20mais%20simples%20n%C3%B3s%20j%C3%A1%20vimos%3A%20a%20sequencial%20e%20a%20de%20atribui%C3%A7%C3%A3o.%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20y%20%3D%201%0A%20%20%20%20y%20%2B%201%0A%20%20%20%20return%20y%2C%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20z%20%3D%201%3B%20z%20%2B%201%20%23%20equivalente%20ao%20acima%2C%20m%C3%B3dulo%20o%20nome%20da%20vari%C3%A1vel%0A%20%20%20%20return%20z%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%20Estrutura%20de%20sele%C3%A7%C3%A3o%3A%20%60if%60%0A%0A%20%20%20%20%20%20%20%20%60%60%60python%0A%20%20%20%20%20%20%20%20if%20%3CC%3E%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3CB1%3E%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3CB2%3E%0A%20%20%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20%20%20%20%20%5BO%20Python%20quando%20encontra%20uma%20instru%C3%A7%C3%A3o%20if%5D(https%3A%2F%2Fwww.inf.puc-rio.br%2F~bclaro%2Fcourses%2Fpython-intro%2Fstatic%2Fdramatic-crossroads.png)%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20t%20%3D%209%0A%20%20%20%20if%20t%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20t%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20if%20t%20%25%202%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20t%20%3D%20t%20%2F%2F%202%0A%20%20%20%20%20%20%20%20else%3A%20%20%23%20t%20%25%202%20!%3D%200%20or%20t%20%25%202%20%3D%3D%201%0A%20%20%20%20%20%20%20%20%20%20%20%20t%20%3D%203%20*%20t%20%2B%201%0A%20%20%20%20t%20%3D%20t%20*%202%0A%20%20%20%20return%20t%2C%0A%0A%0A%40app.cell%0Adef%20__(t)%3A%0A%20%20%20%20t%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20Podemos%20criar%20quantos%20ramos%20quisermos%3A%0A%0A%20%20%20%20%20%20%20%20%60%60%60python%0A%20%20%20%20%20%20%20%20if%20%3CC%3E%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3CB1%3E%0A%20%20%20%20%20%20%20%20else%3A%20%20%23%20opcional%0A%20%20%20%20%20%20%20%20%20%20%20%20%3CB2%3E%0A%20%20%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20_n%20%3D%209%0A%20%20%20%20if%20_n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20_n%0A%20%20%20%20elif%20_n%20%25%202%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20_n%20%2F%2F%3D%202%0A%20%20%20%20elif%20_n%20%25%202%20%3D%3D%201%3A%0A%20%20%20%20%20%20%20%20_n%20%3D%203%20*%20_n%20%2B%201%0A%20%20%20%20%23else%3A%0A%20%20%20%20%23%20%20%20%201%20%2B%20(lambda%3A%20_n)%20%20%23%20nunca%20acontece%0A%20%20%20%20%23%20qual%20o%20valor%20resultante%3F%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%20Por%20que%20n%C3%A3o%20usar%20sempre%20a%20express%C3%A3o%20%60if%60%3F%0A%0A%20%20%20%20%20%20%20%201.%20Quando%20temos%20v%C3%A1rios%20'casos'%2C%20a%20estrutura%20%60if%60%20%C3%A9%20mais%20leg%C3%ADvel%3B%0A%20%20%20%20%20%20%20%202.%20Quando%20queremos%20executar%20v%C3%A1rias%20instru%C3%A7%C3%B5es%2C%20n%C3%A3o%20podemos%20usar%20express%C3%B5es%3B%0A%20%20%20%20%20%20%20%203.%20Uma%20express%C3%A3o%20%60if%60%20sempre%20precisa%20de%20um%20%60else%60%3B%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%20IRPF%0A%20%20%20%20%20%20%20%20%7C%20Base%20de%20C%C3%A1lculo%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20Al%C3%ADquota%20%20%7C%20Parcela%20a%20deduzir%20do%20IR%20%7C%0A%20%20%20%20%20%20%20%20%7C---------------------------------%7C-----------%7C-------------------------%7C%0A%20%20%20%20%20%20%20%20%7C%20At%C3%A9%20R%24%202.259%2C20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(isento)%20%20%7C%20(isento)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%7C%20De%20R%24%202.259%2C20%20at%C3%A9%20R%24%202.826%2C65%20%20%7C%207%2C5%25%20%20%20%20%20%20%7C%20R%24%20169%2C44%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%7C%20De%20R%24%202.826%2C66%20at%C3%A9%20R%24%203.751%2C05%20%20%7C%2015%25%20%20%20%20%20%20%20%7C%20R%24%20381%2C44%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%7C%20De%20R%24%203.751%2C06%20at%C3%A9%20R%24%204.664%2C68%20%20%7C%2022%2C5%25%20%20%20%20%20%7C%20R%24%20662%2C77%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%7C%20Acima%20de%20R%24%204.664%2C68%20%20%20%20%20%20%20%20%20%20%20%20%7C%2027%2C5%25%20%20%20%20%20%7C%20R%24%20896%2C00%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20al%C3%ADquota1%2C%20al%C3%ADquota2%2C%20al%C3%ADquota3%2C%20al%C3%ADquota4%20%3D%200.075%2C%200.15%2C%200.225%2C%200.275%0A%20%20%20%20faixa1%2C%20faixa2%2C%20faixa3%2C%20faixa4%20%3D%202_259.2%2C%202_826.66%2C%203_751.06%2C%204_664.68%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa1%2C%20dedu%C3%A7%C3%A3o_faixa2%2C%20dedu%C3%A7%C3%A3o_faixa3%2C%20dedu%C3%A7%C3%A3o_faixa4%20%3D%20169.44%2C%20381.44%2C%20662.77%2C%20896.00%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20al%C3%ADquota1%2C%0A%20%20%20%20%20%20%20%20al%C3%ADquota2%2C%0A%20%20%20%20%20%20%20%20al%C3%ADquota3%2C%0A%20%20%20%20%20%20%20%20al%C3%ADquota4%2C%0A%20%20%20%20%20%20%20%20dedu%C3%A7%C3%A3o_faixa1%2C%0A%20%20%20%20%20%20%20%20dedu%C3%A7%C3%A3o_faixa2%2C%0A%20%20%20%20%20%20%20%20dedu%C3%A7%C3%A3o_faixa3%2C%0A%20%20%20%20%20%20%20%20dedu%C3%A7%C3%A3o_faixa4%2C%0A%20%20%20%20%20%20%20%20faixa1%2C%0A%20%20%20%20%20%20%20%20faixa2%2C%0A%20%20%20%20%20%20%20%20faixa3%2C%0A%20%20%20%20%20%20%20%20faixa4%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell(disabled%3DTrue%2C%20hide_code%3DTrue)%0Adef%20__(%0A%20%20%20%20al%C3%ADquota1%2C%0A%20%20%20%20al%C3%ADquota2%2C%0A%20%20%20%20al%C3%ADquota3%2C%0A%20%20%20%20al%C3%ADquota4%2C%0A%20%20%20%20faixa1%2C%0A%20%20%20%20faixa2%2C%0A%20%20%20%20faixa3%2C%0A%20%20%20%20faixa4%2C%0A)%3A%0A%20%20%20%20d1%20%3D%20faixa1%20*%20al%C3%ADquota1%0A%20%20%20%20d2%20%3D%20d1%20%2B%20faixa2%20*%20(al%C3%ADquota2%20-%20al%C3%ADquota1)%0A%20%20%20%20d3%20%3D%20d2%20%2B%20faixa3%20*%20(al%C3%ADquota3%20-%20al%C3%ADquota2)%0A%20%20%20%20d4%20%3D%20d3%20%2B%20faixa4%20*%20(al%C3%ADquota4%20-%20al%C3%ADquota3)%0A%20%20%20%20d1%2C%20d2%2C%20d3%2C%20d4%0A%20%20%20%20return%20d1%2C%20d2%2C%20d3%2C%20d4%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20slider%20%3D%20mo.ui.slider(0%2C%2050000)%0A%20%20%20%20mo.md(f%22Escolha%20sua%20renda%3A%20%7Bslider%7D%22)%0A%20%20%20%20return%20slider%2C%0A%0A%0A%40app.cell%0Adef%20__(%0A%20%20%20%20al%C3%ADquota1%2C%0A%20%20%20%20al%C3%ADquota2%2C%0A%20%20%20%20al%C3%ADquota3%2C%0A%20%20%20%20al%C3%ADquota4%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa1%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa2%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa3%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa4%2C%0A%20%20%20%20faixa1%2C%0A%20%20%20%20faixa2%2C%0A%20%20%20%20faixa3%2C%0A%20%20%20%20faixa4%2C%0A%20%20%20%20slider%2C%0A)%3A%0A%20%20%20%20_renda%20%3D%20slider.value%0A%20%20%20%20_calcula_ir%20%3D%20lambda%20a%2C%20d%3A%20_renda%20*%20a%20-%20d%0A%20%20%20%200%20if%20_renda%20%3C%20faixa1%20else%20_calcula_ir(al%C3%ADquota1%2C%20dedu%C3%A7%C3%A3o_faixa1)%20if%20_renda%20%3C%20faixa2%20else%20_calcula_ir(al%C3%ADquota2%2C%20dedu%C3%A7%C3%A3o_faixa2)%20if%20_renda%20%3C%20faixa3%20else%20_calcula_ir(al%C3%ADquota3%2C%20dedu%C3%A7%C3%A3o_faixa3)%20if%20_renda%20%3C%20faixa4%20else%20_calcula_ir(al%C3%ADquota4%2C%20dedu%C3%A7%C3%A3o_faixa4)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(%0A%20%20%20%20al%C3%ADquota1%2C%0A%20%20%20%20al%C3%ADquota2%2C%0A%20%20%20%20al%C3%ADquota3%2C%0A%20%20%20%20al%C3%ADquota4%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa1%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa2%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa3%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa4%2C%0A%20%20%20%20faixa1%2C%0A%20%20%20%20faixa2%2C%0A%20%20%20%20faixa3%2C%0A%20%20%20%20faixa4%2C%0A%20%20%20%20slider%2C%0A)%3A%0A%20%20%20%20renda%20%3D%20slider.value%0A%20%20%20%20ir%20%3D%200%0A%20%20%20%20if%20renda%20%3C%20faixa1%3A%0A%20%20%20%20%20%20%20%20pass%20%20%23%20n%C3%A3o%20faz%20nada%0A%20%20%20%20if%20renda%20%3C%20faixa2%3A%0A%20%20%20%20%20%20%20%20%23%20duas%20instru%C3%A7%C3%B5es%20sequenciais%3B%0A%20%20%20%20%20%20%20%20%23%20devem%20estar%20no%20mesmo%20n%C3%ADvel%20de%20indenta%C3%A7%C3%A3o%0A%20%20%20%20%20%20%20%20ir_bruto%20%3D%20renda%20*%20al%C3%ADquota1%0A%20%20%20%20%20%20%20%20ir%20%3D%20%20ir_bruto%20-%20dedu%C3%A7%C3%A3o_faixa1%0A%20%20%20%20elif%20renda%20%3C%20faixa3%3A%0A%20%20%20%20%20%20%20%20ir%20%3D%20renda%20*%20al%C3%ADquota2%20-%20dedu%C3%A7%C3%A3o_faixa2%0A%20%20%20%20elif%20renda%20%3C%20faixa4%3A%0A%20%20%20%20%20%20%20%20ir%20%3D%20renda%20*%20al%C3%ADquota3%20-%20dedu%C3%A7%C3%A3o_faixa3%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20ir%20%3D%20renda%20*%20al%C3%ADquota4%20-%20dedu%C3%A7%C3%A3o_faixa4%0A%20%20%20%20renda%2C%20ir%0A%20%20%20%20return%20ir%2C%20ir_bruto%2C%20renda%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%20Definindo%20fun%C3%A7%C3%B5es%20nomeadas%0A%0A%20%20%20%20%20%20%20%20Usamos%20%60def%60%20para%20criar%20uma%20nova%20fun%C3%A7%C3%A3o%20com%20o%20nome%20%60%3Cnome%3E%60.%0A%0A%20%20%20%20%20%20%20%20%60%60%60python%0A%20%20%20%20%20%20%20%20def%20%3Cnome%3E(%3Cpar%C3%A2metros%3E)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3CB%3E%0A%20%20%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(inc)%3A%0A%20%20%20%20def%20inc2(x)%3A%0A%20%20%20%20%20%20%20%20x%20%2B%201%0A%0A%20%20%20%20inc2(1)%20%3D%3D%20inc(1)%20%20%23%20inc%20%3D%20lambda%20x%3A%20x%20%2B%201%0A%20%20%20%20return%20inc2%2C%0A%0A%0A%40app.cell%0Adef%20__(inc2)%3A%0A%20%20%20%20inc2(1)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22Fun%C3%A7%C3%B5es%20nomeadas%20n%C3%A3o%20retornam%20valores%20automaticamente%20como%20fun%C3%A7%C3%B5es%20%60lambda%60%3A%20precisamos%20usar%20a%20instru%C3%A7%C3%A3o%20(e%20palavra-chave)%20%60return%60%3A%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(inc)%3A%0A%20%20%20%20_x%20%3D%20print(inc(3))%0A%20%20%20%201%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(inc)%3A%0A%20%20%20%20def%20inc3(x)%3A%0A%20%20%20%20%20%20%20%20x%20%3D%20x%20%2B%201%0A%20%20%20%20%20%20%20%20return%20x%0A%0A%20%20%20%20inc3(42)%20%3D%3D%20inc(42)%0A%20%20%20%20return%20inc3%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%60return%60%20nos%20permite%20retornar%20de%20uma%20fun%C3%A7%C3%A3o%20em%20qualquer%20parte%20dela%2C%20n%C3%A3o%20s%C3%B3%20no%20seu%20final%3A%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(inc)%3A%0A%20%20%20%20def%20inc4(x)%3A%0A%20%20%20%20%20%20%20%20return%20x%20%2B%201%0A%20%20%20%20%20%20%20%20(lambda%3A%201)%20%2B%203%20%20%23%20nunca%20executa%0A%0A%20%20%20%20inc4(55)%20%3D%3D%20inc(55)%0A%20%20%20%20return%20inc4%2C%0A%0A%0A%40app.cell%0Adef%20__(%0A%20%20%20%20al%C3%ADquota1%2C%0A%20%20%20%20al%C3%ADquota2%2C%0A%20%20%20%20al%C3%ADquota3%2C%0A%20%20%20%20al%C3%ADquota4%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa1%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa2%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa3%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa4%2C%0A%20%20%20%20faixa1%2C%0A%20%20%20%20faixa2%2C%0A%20%20%20%20faixa3%2C%0A%20%20%20%20faixa4%2C%0A)%3A%0A%20%20%20%20def%20calcula_ir(renda)%3A%0A%20%20%20%20%20%20%20%20if%20renda%20%3C%20faixa1%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%200%0A%20%20%20%20%20%20%20%20elif%20renda%20%3C%20faixa2%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20ir_bruto%20%3D%20renda%20*%20al%C3%ADquota1%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%20ir_bruto%20-%20dedu%C3%A7%C3%A3o_faixa1%0A%20%20%20%20%20%20%20%20elif%20renda%20%3C%20faixa3%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20renda%20*%20al%C3%ADquota2%20-%20dedu%C3%A7%C3%A3o_faixa2%0A%20%20%20%20%20%20%20%20elif%20renda%20%3C%20faixa4%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20renda%20*%20al%C3%ADquota3%20-%20dedu%C3%A7%C3%A3o_faixa3%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20renda%20*%20al%C3%ADquota4%20-%20dedu%C3%A7%C3%A3o_faixa4%0A%0A%20%20%20%20calcula_ir(10200)%0A%20%20%20%20return%20calcula_ir%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22Podemos%20definir%20fun%C3%A7%C3%B5es%20aninhadas%20(fun%C3%A7%C3%B5es%20dentro%20de%20fun%C3%A7%C3%B5es)%3A%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(%0A%20%20%20%20al%C3%ADquota1%2C%0A%20%20%20%20al%C3%ADquota2%2C%0A%20%20%20%20al%C3%ADquota3%2C%0A%20%20%20%20al%C3%ADquota4%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa1%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa2%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa3%2C%0A%20%20%20%20dedu%C3%A7%C3%A3o_faixa4%2C%0A%20%20%20%20faixa1%2C%0A%20%20%20%20faixa2%2C%0A%20%20%20%20faixa3%2C%0A%20%20%20%20faixa4%2C%0A%20%20%20%20renda%2C%0A)%3A%0A%20%20%20%20def%20calcula_ir2(renda)%3A%0A%20%20%20%20%20%20%20%20def%20ir(a%2C%20d)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20renda%20*%20a%20-%20d%0A%20%20%20%20%20%20%20%20%23%20poder%C3%ADamos%20tamb%C3%A9m%20fazer%3A%0A%20%20%20%20%20%20%20%20%23ir%20%3D%20lambda%20a%2C%20d%3A%20renda%20*%20a%20-%20d%0A%20%20%20%20%20%20%20%20a_pagar%20%3D%200%0A%20%20%20%20%20%20%20%20if%20faixa1%20%3C%20renda%20%3C%20faixa2%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20a_pagar%20%3D%20ir(al%C3%ADquota1%2C%20dedu%C3%A7%C3%A3o_faixa1)%0A%20%20%20%20%20%20%20%20elif%20renda%20%3C%20faixa3%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20a_pagar%20%3D%20ir(al%C3%ADquota2%2C%20dedu%C3%A7%C3%A3o_faixa2)%0A%20%20%20%20%20%20%20%20elif%20renda%20%3C%20faixa4%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20a_pagar%20%3D%20ir(al%C3%ADquota3%2C%20dedu%C3%A7%C3%A3o_faixa3)%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20a_pagar%20%3D%20ir(al%C3%ADquota4%2C%20dedu%C3%A7%C3%A3o_faixa4)%0A%20%20%20%20%20%20%20%20return%20a_pagar%0A%0A%20%20%20%20calcula_ir2(renda)%0A%20%20%20%20return%20calcula_ir2%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%20Exerc%C3%ADcios%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%201%0A%0A%20%20%20%20%20%20%20%20Defina%20a%20fun%C3%A7%C3%A3o%20que%20implementa%20o%20c%C3%A1lculo%20do%20fatorial%20de%20um%20n%C3%BAmero.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20fat(n)%3A%0A%20%20%20%20%20%20%20pass%0A%20%20%20%20return%20fat%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%202%0A%0A%20%20%20%20%20%20%20%20Defina%20a%20fun%C3%A7%C3%A3o%20que%20dado%20um%20n%C3%BAmero%20inteiro%20positivo%20retorna%20o%20n%C3%BAmero%20seguinte%20na%20%5Bsequ%C3%AAncia%20de%20Collatz%5D(https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCollatz_conjecture).%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20next_collatz(n)%3A%0A%20%20%20%20%20%20%20%20pass%0A%20%20%20%20return%20next_collatz%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%203%0A%0A%20%20%20%20%20%20%20%20A%20sequ%C3%AAncia%20de%20Collatz%20come%C3%A7ando%20em%205%20chega%20em%201%20em%20cinco%20passos%3A%0A%20%20%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%205%20%3E%2016%20%3E%208%20%3E%204%20%3E%202%20%3E%201%0A%20%20%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20%20%20%20%20Na%20defini%C3%A7%C3%A3o%20usual%20da%20fun%C3%A7%C3%A3o%20%60next_collatz%60%2C%20fazemos%20cinco%20chamadas%20recursivas%20nesse%20caso.%20Voc%C3%AA%20consegue%20reduzir%20o%20n%C3%BAmero%20de%20chamadas%20recursivas%20sem%20prejudicar%20a%20corretude%20do%20fun%C3%A7%C3%A3o%3F%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%20Estrutura%20de%20repeti%C3%A7%C3%A3o%3A%20%60while%60%0A%0A%20%20%20%20%20%20%20%20A%20sintaxe%20de%20%60while%60%20loops%20%C3%A9%20a%20seguinte%3A%0A%0A%20%20%20%20%20%20%20%20%60%60%60python%0A%20%20%20%20%20%20%20%20while%20%3CC%3E%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3CB%3E%0A%20%20%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20%20%20%20%20A%20execu%C3%A7%C3%A3o%20de%20uma%20instru%C3%A7%C3%A3o%20%60while%60%20ocorre%20da%20seguinte%20forma%3A%20a%20condi%C3%A7%C3%A3o%20%60C%60%20%C3%A9%20avaliada%20e%20seu%20resultado%20%C3%A9%20interpretado%20como%20um%20valor%20l%C3%B3gico%20(verdadeiro%20ou%20falso)%3B%20se%20a%20condi%C3%A7%C3%A3o%20for%20falsa%2C%20o%20bloco%20%60B%60%20%C3%A9%20ignorado%2C%20e%20segue-se%20para%20a%20instru%C3%A7%C3%A3o%20seguinte%3B%20se%20a%20condi%C3%A7%C3%A3o%20for%20verdadeira%20(True)%2C%20o%20bloco%20%60B%60%20%C3%A9%20executado%2C%20em%20seguida%20a%20condi%C3%A7%C3%A3o%20do%20%60while%60%20%C3%A9%20reavaliada%2C%20e%20repete-se%20a%20execu%C3%A7%C3%A3o%20acima%20enquanto%20a%20avalia%C3%A7%C3%A3o%20da%20condi%C3%A7%C3%A3o%20continuar%20sendo%20verdadeira.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20multiplica%C3%A7%C3%A3o_lenta(x%2C%20y)%3A%0A%20%20%20%20%20%20%20%20if%20x%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%200%0A%20%20%20%20%20%20%20%20elif%20x%20%3D%3D%201%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20y%0A%20%20%20%20%20%20%20%20else%3A%20%20%23%20precisamos%20desse%20else%3F%0A%20%20%20%20%20%20%20%20%20%20%20%20z%20%3D%20y%0A%20%20%20%20%20%20%20%20%20%20%20%20while%20x%20%3E%201%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20z%20%3D%20z%20%2B%20y%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%20%3D%20x%20-%201%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20z%0A%0A%20%20%20%20multiplica%C3%A7%C3%A3o_lenta(4%2C%203)%0A%20%20%20%20return%20multiplica%C3%A7%C3%A3o_lenta%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%20Exerc%C3%ADcios%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%204%0A%0A%20%20%20%20%20%20%20%20Reescreva%20%60multiplica%C3%A7%C3%A3o_lenta%60%20usando%20a%20condi%C3%A7%C3%A3o%20%60x%20%3E%200%60%20na%20instru%C3%A7%C3%A3o%20%60while%60.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%205%0A%0A%20%20%20%20%20%20%20%20Escreva%20uma%20vers%C3%A3o%20recursiva%20de%20%60multiplica%C3%A7%C3%A3o_lenta%60%2C%20isto%20%C3%A9%2C%20n%C3%A3o%20use%20a%20instru%C3%A7%C3%A3o%20%60while%60%2C%20mas%20sim%20chamadas%20recursivas.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20rec_mult(x%2C%20y)%3A%0A%20%20%20%20%20%20%20%20pass%0A%20%20%20%20return%20rec_mult%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%206%0A%0A%20%20%20%20%20%20%20%20Reescreva%20%60multiplica%C3%A7%C3%A3o_lenta%60%20para%20que%20ela%20funcione%20com%20n%C3%BAmeros%20inteiros%20em%20geral%2C%20e%20n%C3%A3o%20s%C3%B3%20n%C3%A3o%20negativos.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%207%0A%0A%20%20%20%20%20%20%20%20Escreva%20a%20fun%C3%A7%C3%A3o%20fatorial%20usando%20a%20instru%C3%A7%C3%A3o%20%60while%60.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%208%0A%0A%20%20%20%20%20%20%20%20Redefina%20a%20fun%C3%A7%C3%A3o%20%60collatz_steps%60%20usando%20a%20instru%C3%A7%C3%A3o%20%60while%60.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%23%23%20Ex.%209%0A%0A%20%20%20%20%20%20%20%20Podemos%20aproximar%20numericamente%20a%20integral%20de%20uma%20fun%C3%A7%C3%A3o%20%24f%24%20entre%20os%20limites%20%24a%24%20e%20%24b%24%20com%20a%20f%C3%B3rmula%0A%0A%20%20%20%20%20%20%20%20%24%24%5Cint_%7Ba%7D%5E%7Bb%7D%20f(x)%20%5C%2C%20dx%20%3D%20%5Cleft%5Bf(a%2B%5Cfrac%7B%5CDelta%20x%7D%7B2%7D)%20%2B%20f(a%20%2B%20%5CDelta%20x%20%2B%5Cfrac%7B%5CDelta%20x%7D%7B2%7D)%20%2B%20f(a%20%2B%202dx%20%2B%5Cfrac%7B%5CDelta%20x%7D%7B2%7D)%20%2B%20%5Cldots%20%20%5Cright%5D%20%5C%2C%5CDelta%20x%24%24%0A%0A%20%20%20%20%20%20%20%20!%5B%5D(https%3A%2F%2Fwww.inf.puc-rio.br%2F~bclaro%2Fcourses%2Fpython-intro%2Fstatic%2FCNX_Calc_Figure_07_06_001.jpeg)%0A%0A%20%20%20%20%20%20%20%20Implemente%20essa%20aproxima%C3%A7%C3%A3o.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20integral(f%2C%20a%2C%20b%2C%20dx%3D0.001)%3A%0A%20%20%20%20%20%20%20%20pass%0A%0A%20%20%20%20integral(lambda%20x%3A%20x**3%2C%200%2C%201)%20-%200.25%20%3C%200.001%2C%20%5C%0A%20%20%20%20%20%20integral(lambda%20x%3A%20x**3%20%2B%20x**2%20-%208*x%20%2B%2064%2C%200%2C%201)%20-%20727%2F12%20%3C%200.001%0A%20%20%20%20return%20integral%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%20Estrutura%20de%20repeti%C3%A7%C3%A3o%3A%20%60for%60%0A%0A%20%20%20%20%20%20%20%20A%20sintaxe%20da%20forma%20mais%20simples%20de%20um%20%60for%60%20loop%20%C3%A9%20a%20seguinte%3A%0A%0A%20%20%20%20%20%20%20%20%60%60%60python%0A%20%20%20%20%20%20%20%20for%20%3Cvar%3E%20in%20%3Citer%C3%A1vel%3E%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3CB%3E%0A%20%20%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20%20%20%20%20A%20execu%C3%A7%C3%A3o%20de%20uma%20instru%C3%A7%C3%A3o%20%60for%60%20ocorre%20da%20seguinte%20forma%3A%20o%20%60iter%C3%A1vel%60%20%C3%A9%20avaliado%20e%20produz%20uma%20s%C3%A9rie%20de%20valores%20que%20s%C3%A3o%20atribu%C3%ADdos%20sequencialmente%20%C3%A0%20vari%C3%A1vel%20%60var%60%3B%20o%20bloco%20%60B%60%20%C3%A9%20executado%20uma%20vez%20para%20cada%20valor%20assumido%20por%20%60var%60.%0A%0A%20%20%20%20%20%20%20%20O%20que%20%C3%A9%20um%20iter%C3%A1vel%3F%20Vamos%20ver%20v%C3%A1rios%20iter%C3%A1veis%20daqui%20para%20a%20frente%2C%20mas%20vamos%20come%C3%A7ar%20com%20a%20fun%C3%A7%C3%A3o%20nativa%20%60range%60.%20Quando%20chamamos%20%60range(n)%60%2C%20ela%20produz%20os%20inteiros%20no%20intervalo%20%24%5B0%2C%20n)%24%20em%20sequ%C3%AAncia.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20for%20k%20in%20range(10)%3A%0A%20%20%20%20%20%20%20%20print(k)%0A%20%20%20%20return%20k%2C%0A%0A%0A%40app.cell%0Adef%20__(k)%3A%0A%20%20%20%20for%20i%20in%20range(1%2C%2010)%3A%0A%20%20%20%20%20%20%20%20print(k)%0A%20%20%20%20%20%20%20%20i%20%3D%205%0A%20%20%20%20%23%20Que%20valores%20s%C3%A3o%20mostrados%20na%20tela%3F%0A%20%20%20%20return%20i%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%20Exerc%C3%ADcios%0A%0A%20%20%20%20%20%20%20%20Refa%C3%A7a%20os%20exerc%C3%ADcios%20que%20envolvem%20instru%C3%A7%C3%B5es%20%60while%60%20usando%20instru%C3%A7%C3%B5es%20%60for%60.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20for_multiplica%C3%A7%C3%A3o_lenta(m%2C%20n)%3A%0A%20%20%20%20%20%20%20%20pass%0A%20%20%20%20return%20for_multiplica%C3%A7%C3%A3o_lenta%2C%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20for_fatorial(n)%3A%0A%20%20%20%20%20%20%20%20pass%0A%20%20%20%20return%20for_fatorial%2C%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20for_collatz_steps(n)%3A%0A%20%20%20%20%20%20%20%20pass%0A%20%20%20%20return%20for_collatz_steps%2C%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20def%20for_integral(f%2C%20a%2C%20b%2C%20dx%3D0.001)%3A%0A%20%20%20%20%20%20%20%20pass%0A%20%20%20%20return%20for_integral%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20Diferen%C3%A7as%20entre%20as%20instru%C3%A7%C3%B5es%20%60for%60%20e%20%60while%60%3A%0A%0A%20%20%20%20%20%20%20%20%7C%20%60for%60%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20%60while%60%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%7C------------------------------------------------%7C---------------------------------------------------------------------------------------%7C%0A%20%20%20%20%20%20%20%20%7C%20n%C3%BAmero%20de%20itera%C3%A7%C3%B5es%20conhecido%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20n%C3%BAmero%20de%20itera%C3%A7%C3%B5es%20indefinido%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%7C%20pode-se%20usar%20%60break%60%20para%20terminar%20cedo%20%20%20%20%20%20%20%20%7C%20pode-se%20usar%20%60break%60%20para%20terminar%20cedo%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%7C%20usa%20um%20contador%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20usa%20uma%20condi%C3%A7%C3%A3o%2C%20que%20pode%20envolver%20um%20contador%20(precisa%20ser%20declarado%20antes%20do%20loop)%20%7C%0A%20%20%20%20%20%20%20%20%7C%20sempre%20pode%20ser%20reescrito%20como%20um%20loop%20%60while%60%20%7C%20nem%20sempre%20pode%20ser%20transformado%20em%20um%20loop%20%60for%60%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%20%20%20%20%23%20Cr%C3%A9ditos%0A%0A%20%20%20%20%20%20%20%20Parte%20do%20material%20%C3%A9%20adaptado%20dos%20livros%3A%0A%0A%20%20%20%20%20%20%20%20-%20*Structure%20and%20Interpretation%20of%20Computer%20Programs*%2C%20de%20Harold%20Abelson%20and%20Gerald%20Jay%20Sussman%20with%20Julie%20Sussman%20(dispon%C3%ADvel%20%5Baqui%5D(https%3A%2F%2Fgithub.com%2Fsarabander%2Fsicp-pdf))%0A%20%20%20%20%20%20%20%20-%20*Calculus%3A%20Volume%201*%2C%20de%20Gilbert%20Strang%2C%20Edwin%20%E2%80%9CJed%E2%80%9D%20Herman%20_et%20al_.%20(dispon%C3%ADvel%20%5Baqui%5D(https%3A%2F%2Fopenstax.org%2Fdetails%2Fbooks%2Fcalculus-volume-1))%0A%0A%20%20%20%20%20%20%20%20Licenciado%20sob%20Creative%20Commons%20Attribution-ShareAlike%204.0%20International%20License%20(%5Bcc%20by-sa%5D(Creative%20Commons%20Attribution-ShareAlike%204.0%20International%20License%20(cc%20by-sa).)).%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A