Python ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
Como usar os argumentos padrões das funções e métodos em PythonQuantidade de visualizações: 8065 vezes |
Geralmente quando efetuamos chamadas às funções, nosso código fica responsável por fornecer os valores para os argumentos da função. Em Python é possível termos argumentos padrões, e tais argumentos já podem ter um valor pré-definido. Desta forma, a passagem dos parâmetros se torna opcional. Veja um exemplo:
# função com argumento padrão
def erro(msg = "Houve um erro."):
print(msg)
def main():
# chamada à função fornecendo o argumento
erro("Erro desconhecido.")
# chamada à função sem fornecer o argumento
erro()
if __name__== "__main__":
main()
Ao executarmos este exemplo nós teremos o seguinte resultado: Erro desconhecido. Houve um erro. Veja mais um exemplo: # função com argumentos padrões def volume(comprimento = 1, largura = 1, altura = 1): return (comprimento * largura * altura) def main(): # chamada à função fornecendo um argumento print(volume(3)) # chamada à função fornecendo dois argumentos print(volume(4, 5)) # chamada à função fornecendo três argumentos print(volume(4, 5, 7)) # chamada à função fornecendo nenhum argumento print(volume()) if __name__== "__main__": main() Ao executarmos este exemplo nós teremos o seguinte resultado: 3 20 140 1 É importante observar que os argumentos padrões devem estar sempre à direita dos demais argumentos. Falhar em cumprir esta exigência pode causar um erro do tipo: SyntaxError: non-default argument follows default argument |
Java ::: Pacote java.lang ::: Integer |
Java Básico - Como usar a constante SIZE da classe Integer para obter a quantidade de bits necessária para armazenar um intQuantidade de visualizações: 7047 vezes |
Em algumas situações gostaríamos de obter a quantidade de bits necessária para armazenar um valor do tipo int (inteiro). Para isso podemos usar a constante SIZE da classe Integer (uma classe wrapper que encapsula o valor primitivo int). Veja como isso pode ser feito:
public class Estudos {
public static void main(String[] args) {
// vamos obter a quantidade de bits necessária para representar um int
int quantBits = Integer.SIZE;
// o resultado
System.out.println("Um int ocupa " + quantBits + " bits, ou seja, " +
(quantBits / 8) + " bytes");
}
}
Ao executarmos este código o resultado será: Um int ocupa 32 bits, ou seja, 4 bytes. |
QGIS ::: PyQGIS API ::: Shapefiles, Camadas Vetoriais, Dados Vetoriais |
Como exibir todos os atributos das feições de uma camada vetorial no QGIS usando getFeatures() e attributes() da PyQGIS APIQuantidade de visualizações: 6375 vezes |
|
Nesta dica mostrarei como podemos acessar todos os atributos das feições (features) de uma camada vetorial no QGIS usando getFeatures() e attributes() do objeto QgsVectorLayer da PyQGIS API. Depois de carregar o shapefile contendo todos os municípios do Estado de Goiás, usei a getFeatures() para retornar um iterador QgsFeatureIterator que nos permite acessar as features individuais da camada. Então, de posse das feições individuais, nós usamos a função attributes() para retornar o QgsFeature correspondente e exibir seu conteúdo. Veja o código PyQGIS completo para o exemplo:
# vamos criar um novo objeto QgsVectorLayer com o local do nosso shapefile
camada = QgsVectorLayer("C:\\GO\\GO_Municipios_2022.shp",
"Municípios Estado de Goiás", "ogr")
# vamos testar se a camada é válida
if not camada.isValid():
print("Não foi possível carregar a camada %s" % camada.name())
else:
# vamos adicionar a camada à relação de camadas
QgsProject.instance().addMapLayer(camada)
# vamos obter as feições
feicoes = camada.getFeatures()
# agora percorremos as feições e obtemos os seus
# atributos, todos de uma só vez ou individual,
# como mostro em outras dicas
for f in feicoes:
# vamos obter os atributos desta feição
atributos = f.attributes()
# e mostramos o resultado
print(atributos)
Ao rodar esse código PyQGIS no QGIS nós teremos o seguinte resultado: ['5200050', 'Abadia de Goiás', 'GO', 143.357] ['5200100', 'Abadiânia', 'GO', 1044.555] ['5200134', 'Acreúna', 'GO', 1566.742] ['5200159', 'Adelândia', 'GO', 115.385] ['5200175', 'Água Fria de Goiás', 'GO', 2023.636] ['5200209', 'Água Limpa', 'GO', 458.836] ['5200258', 'Águas Lindas de Goiás', 'GO', 191.817] ['5200308', 'Alexânia', 'GO', 846.876] ['5200506', 'Aloândia', 'GO', 102.094] ['5200555', 'Alto Horizonte', 'GO', 500.342] ['5200605', 'Alto Paraíso de Goiás', 'GO', 2594.998] ['5200803', 'Alvorada do Norte', 'GO', 1268.347] ['5200829', 'Amaralina', 'GO', 1343.742] ['5200852', 'Americano do Brasil', 'GO', 133.834] ['5200902', 'Amorinópolis', 'GO', 406.93] ['5201108', 'Anápolis', 'GO', 935.672] ['5201207', 'Anhanguera', 'GO', 55.569] ['5201306', 'Anicuns', 'GO', 976.038] ['5201405', 'Aparecida de Goiânia', 'GO', 279.954] ['5201454', 'Aparecida do Rio Doce', 'GO', 603.254] ['5201504', 'Aporé', 'GO', 2899.237] ['5201603', 'Araçu', 'GO', 149.776] ['5201702', 'Aragarças', 'GO', 661.677] ['5201801', 'Aragoiânia', 'GO', 218.125] ['5202155', 'Araguapaz', 'GO', 2188.1] ['5202353', 'Arenópolis', 'GO', 1075.535] ['5202502', 'Aruanã', 'GO', 3054.773] ['5202601', 'Aurilândia', 'GO', 565.514] ['5202809', 'Avelinópolis', 'GO', 170.228] ['5203104', 'Baliza', 'GO', 1780.173] ['5203203', 'Barro Alto', 'GO', 1080.268] ['5203302', 'Bela Vista de Goiás', 'GO', 1274.034] ['5203401', 'Bom Jardim de Goiás', 'GO', 1901.137] ['5203500', 'Bom Jesus de Goiás', 'GO', 1405.605] ['5203559', 'Bonfinópolis', 'GO', 121.915] ['5203575', 'Bonópolis', 'GO', 1635.319] ['5203609', 'Brazabrantes', 'GO', 125.326] ['5203807', 'Britânia', 'GO', 1458.459] ['5203906', 'Buriti Alegre', 'GO', 901.932] ['5203939', 'Buriti de Goiás', 'GO', 202.576] ['5203962', 'Buritinópolis', 'GO', 246.075] ['5204003', 'Cabeceiras', 'GO', 1126.434] ['5204102', 'Cachoeira Alta', 'GO', 1657.226] ['5204201', 'Cachoeira de Goiás', 'GO', 424.49] ['5204250', 'Cachoeira Dourada', 'GO', 528.281] ['5204300', 'Caçu', 'GO', 2254.34] ['5204409', 'Caiapônia', 'GO', 8627.961] ['5204508', 'Caldas Novas', 'GO', 1608.523] ['5204557', 'Caldazinha', 'GO', 251.72] ['5204607', 'Campestre de Goiás', 'GO', 272.734] ['5204656', 'Campinaçu', 'GO', 1978.386] ['5204706', 'Campinorte', 'GO', 1064.541] ['5204805', 'Campo Alegre de Goiás', 'GO', 2450.111] ['5204854', 'Campo Limpo de Goiás', 'GO', 156.113] ['5204904', 'Campos Belos', 'GO', 735.126] ['5204953', 'Campos Verdes', 'GO', 443.125] ['5205000', 'Carmo do Rio Verde', 'GO', 419.821] ['5205059', 'Castelândia', 'GO', 299.228] ['5205109', 'Catalão', 'GO', 3826.37] ['5205208', 'Caturaí', 'GO', 205.065] ['5205307', 'Cavalcante', 'GO', 6948.78] ['5205406', 'Ceres', 'GO', 213.07] ['5205455', 'Cezarina', 'GO', 417.08] ['5205471', 'Chapadão do Céu', 'GO', 2184.076] ['5205497', 'Cidade Ocidental', 'GO', 389.984] ['5205513', 'Cocalzinho de Goiás', 'GO', 1785.339] ['5205521', 'Colinas do Sul', 'GO', 1707.519] ['5205703', 'Córrego do Ouro', 'GO', 458.077] ['5205802', 'Corumbá de Goiás', 'GO', 1064.833] ['5205901', 'Corumbaíba', 'GO', 1864.277] ['5206206', 'Cristalina', 'GO', 6153.921] ['5206305', 'Cristianópolis', 'GO', 221.624] ['5206404', 'Crixás', 'GO', 4673.039] ['5206503', 'Cromínia', 'GO', 364.918] ['5206602', 'Cumari', 'GO', 568.365] ['5206701', 'Damianópolis', 'GO', 417.625] ['5206800', 'Damolândia', 'GO', 86.057] ['5206909', 'Davinópolis', 'GO', 482.857] ['5207105', 'Diorama', 'GO', 685.382] ['5207253', 'Doverlândia', 'GO', 3227.558] ['5207352', 'Edealina', 'GO', 598.218] ['5207402', 'Edéia', 'GO', 1469.099] ['5207501', 'Estrela do Norte', 'GO', 301.139] ['5207535', 'Faina', 'GO', 1949.685] ['5207600', 'Fazenda Nova', 'GO', 1279.107] ['5207808', 'Firminópolis', 'GO', 422.34] ['5207907', 'Flores de Goiás', 'GO', 3695.106] ['5208004', 'Formosa', 'GO', 5804.292] ['5208103', 'Formoso', 'GO', 843.42] ['5208152', 'Gameleira de Goiás', 'GO', 588.328] ['5208301', 'Divinópolis de Goiás', 'GO', 828.874] ['5208400', 'Goianápolis', 'GO', 166.642] ['5208509', 'Goiandira', 'GO', 569.917] ['5208608', 'Goianésia', 'GO', 1547.319] ['5208707', 'Goiânia', 'GO', 729.296] ['5208806', 'Goianira', 'GO', 213.772] ['5208905', 'Goiás', 'GO', 3108.423] ['5209101', 'Goiatuba', 'GO', 2479.591] ['5209150', 'Gouvelândia', 'GO', 827.373] ['5209200', 'Guapó', 'GO', 514.178] ['5209291', 'Guaraíta', 'GO', 205.533] ['5209408', 'Guarani de Goiás', 'GO', 1221.054] ['5209457', 'Guarinos', 'GO', 593.188] ['5209606', 'Heitoraí', 'GO', 228.615] ['5209705', 'Hidrolândia', 'GO', 952.122] ['5209804', 'Hidrolina', 'GO', 583.756] ['5209903', 'Iaciara', 'GO', 1547.183] ['5209937', 'Inaciolândia', 'GO', 689.201] ['5209952', 'Indiara', 'GO', 955.419] ['5210000', 'Inhumas', 'GO', 614.887] ['5210109', 'Ipameri', 'GO', 4382.863] ['5210158', 'Ipiranga de Goiás', 'GO', 244.209] ['5210208', 'Iporá', 'GO', 1027.249] ['5210307', 'Israelândia', 'GO', 579.19] ['5210406', 'Itaberaí', 'GO', 1461.916] ['5210562', 'Itaguari', 'GO', 142.652] ['5210604', 'Itaguaru', 'GO', 241.029] ['5210802', 'Itajá', 'GO', 2082.736] ['5210901', 'Itapaci', 'GO', 952.998] ['5211008', 'Itapirapuã', 'GO', 2047.874] ['5211206', 'Itapuranga', 'GO', 1281.404] ['5211305', 'Itarumã', 'GO', 3437.367] ['5211404', 'Itauçu', 'GO', 383.066] ['5211503', 'Itumbiara', 'GO', 2447.014] ['5211602', 'Ivolândia', 'GO', 1260.841] ['5211701', 'Jandaia', 'GO', 863.087] ['5211800', 'Jaraguá', 'GO', 1848.947] ['5211909', 'Jataí', 'GO', 7178.792] ['5212006', 'Jaupaci', 'GO', 528.783] ['5212055', 'Jesúpolis', 'GO', 115.211] ['5212105', 'Joviânia', 'GO', 446.258] ['5212204', 'Jussara', 'GO', 4092.34] ['5212253', 'Lagoa Santa', 'GO', 463.289] ['5212303', 'Leopoldo de Bulhões', 'GO', 476.137] ['5212501', 'Luziânia', 'GO', 3962.107] ['5212600', 'Mairipotaba', 'GO', 468.029] ['5212709', 'Mambaí', 'GO', 858.27] ['5212808', 'Mara Rosa', 'GO', 1695.463] ['5212907', 'Marzagão', 'GO', 225.518] ['5212956', 'Matrinchã', 'GO', 1150.503] ['5213004', 'Maurilândia', 'GO', 389.959] ['5213053', 'Mimoso de Goiás', 'GO', 1380.701] ['5213087', 'Minaçu', 'GO', 2854.137] ['5213103', 'Mineiros', 'GO', 9042.844] ['5213400', 'Moiporá', 'GO', 452.314] ['5213509', 'Monte Alegre de Goiás', 'GO', 3119.86] ['5213707', 'Montes Claros de Goiás', 'GO', 2900.397] ['5213756', 'Montividiu', 'GO', 1869.581] ['5213772', 'Montividiu do Norte', 'GO', 1337.232] ['5213806', 'Morrinhos', 'GO', 2846.299] ['5213855', 'Morro Agudo de Goiás', 'GO', 282.333] ['5213905', 'Mossâmedes', 'GO', 684.882] ['5214002', 'Mozarlândia', 'GO', 1738.516] ['5214051', 'Mundo Novo', 'GO', 2141.534] ['5214101', 'Mutunópolis', 'GO', 955.069] ['5214408', 'Nazário', 'GO', 281.147] ['5214507', 'Nerópolis', 'GO', 204.713] ['5214606', 'Niquelândia', 'GO', 9846.293] ['5214705', 'Nova América', 'GO', 209.432] ['5214804', 'Nova Aurora', 'GO', 307.335] ['5214838', 'Nova Crixás', 'GO', 7308.681] ['5214861', 'Nova Glória', 'GO', 411.753] ['5214879', 'Nova Iguaçu de Goiás', 'GO', 625.625] ['5214903', 'Nova Roma', 'GO', 2136.725] ['5215009', 'Nova Veneza', 'GO', 122.354] ['5215207', 'Novo Brasil', 'GO', 649.349] ['5215231', 'Novo Gama', 'GO', 192.285] ['5215256', 'Novo Planalto', 'GO', 1254.491] ['5215306', 'Orizona', 'GO', 1971.265] ['5215405', 'Ouro Verde de Goiás', 'GO', 208.804] ['5215504', 'Ouvidor', 'GO', 411.318] ['5215603', 'Padre Bernardo', 'GO', 3142.615] ['5215652', 'Palestina de Goiás', 'GO', 1318.047] ['5215702', 'Palmeiras de Goiás', 'GO', 1537.196] ['5215801', 'Palmelo', 'GO', 59.809] ['5215900', 'Palminópolis', 'GO', 393.326] ['5216007', 'Panamá', 'GO', 432.204] ['5216304', 'Paranaiguara', 'GO', 1153.415] ['5216403', 'Paraúna', 'GO', 3786.578] ['5216452', 'Perolândia', 'GO', 1033.657] ['5216809', 'Petrolina de Goiás', 'GO', 530.49] ['5216908', 'Pilar de Goiás', 'GO', 906.048] ['5217104', 'Piracanjuba', 'GO', 2374.232] ['5217203', 'Piranhas', 'GO', 2045.088] ['5217302', 'Pirenópolis', 'GO', 2200.369] ['5217401', 'Pires do Rio', 'GO', 1077.641] ['5217609', 'Planaltina', 'GO', 2558.924] ['5217708', 'Pontalina', 'GO', 1434.289] ['5218003', 'Porangatu', 'GO', 4825.287] ['5218052', 'Porteirão', 'GO', 606.262] ['5218102', 'Portelândia', 'GO', 553.411] ['5218300', 'Posse', 'GO', 2076.99] ['5218391', 'Professor Jamil', 'GO', 356.292] ['5218508', 'Quirinópolis', 'GO', 3786.026] ['5218607', 'Rialma', 'GO', 268.291] ['5218706', 'Rianápolis', 'GO', 157.379] ['5218789', 'Rio Quente', 'GO', 244.655] ['5218805', 'Rio Verde', 'GO', 8374.255] ['5218904', 'Rubiataba', 'GO', 750.659] ['5219001', 'Sanclerlândia', 'GO', 509.402] ['5219100', 'Santa Bárbara de Goiás', 'GO', 140.957] ['5219209', 'Santa Cruz de Goiás', 'GO', 1109.007] ['5219258', 'Santa Fé de Goiás', 'GO', 1164.186] ['5219308', 'Santa Helena de Goiás', 'GO', 1142.337] ['5219357', 'Santa Isabel', 'GO', 812.756] ['5219407', 'Santa Rita do Araguaia', 'GO', 1357.197] ['5219456', 'Santa Rita do Novo Destino', 'GO', 970.448] ['5219506', 'Santa Rosa de Goiás', 'GO', 166.44] ['5219605', 'Santa Tereza de Goiás', 'GO', 789.544] ['5219704', 'Santa Terezinha de Goiás', 'GO', 1206.6] ['5219712', 'Santo Antônio da Barra', 'GO', 450.336] ['5219738', 'Santo Antônio de Goiás', 'GO', 135.022] ['5219753', 'Santo Antônio do Descoberto', 'GO', 943.948] ['5219803', 'São Domingos', 'GO', 3335.999] ['5219902', 'São Francisco de Goiás', 'GO', 416.535] ['5220009', "São João d'Aliança", 'GO', 3334.455] ['5220058', 'São João da Paraúna', 'GO', 286.979] ['5220108', 'São Luís de Montes Belos', 'GO', 829.62] ['5220157', 'São Luiz do Norte', 'GO', 583.832] ['5220207', 'São Miguel do Araguaia', 'GO', 6150.179] ['5220264', 'São Miguel do Passa Quatro', 'GO', 537.347] ['5220280', 'São Patrício', 'GO', 172.763] ['5220405', 'São Simão', 'GO', 415.015] ['5220454', 'Senador Canedo', 'GO', 247.005] ['5220504', 'Serranópolis', 'GO', 5521.774] ['5220603', 'Silvânia', 'GO', 2349.924] ['5220686', 'Simolândia', 'GO', 346.811] ['5220702', "Sítio d'Abadia", 'GO', 1611.851] ['5221007', 'Taquaral de Goiás', 'GO', 205.665] ['5221080', 'Teresina de Goiás', 'GO', 784.793] ['5221197', 'Terezópolis de Goiás', 'GO', 107.407] ['5221304', 'Três Ranchos', 'GO', 284.034] ['5221403', 'Trindade', 'GO', 712.69] ['5221452', 'Trombas', 'GO', 802.905] ['5221502', 'Turvânia', 'GO', 482.317] ['5221551', 'Turvelândia', 'GO', 935.659] ['5221577', 'Uirapuru', 'GO', 1154.305] ['5221601', 'Uruaçu', 'GO', 2142.484] ['5221700', 'Uruana', 'GO', 522.904] ['5221809', 'Urutaí', 'GO', 623.821] ['5221858', 'Valparaíso de Goiás', 'GO', 61.488] ['5221908', 'Varjão', 'GO', 517.402] ['5222005', 'Vianópolis', 'GO', 954.115] ['5222054', 'Vicentinópolis', 'GO', 733.794] ['5222203', 'Vila Boa', 'GO', 1052.593] ['5222302', 'Vila Propício', 'GO', 2181.593] Note que mostrei todos os atributos das 246 feições (features) do meu shapefile. E cada feição representa um dos municípios do Estado de Goiás. Veja que os atributos são o código do município, seu nome, a sigla do estado e sua área (em metros quadrados). Deixei a listagem completa para facilitar alguém que queira fazer trabalhos relacionados a isso. |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizadaQuantidade de visualizações: 1 vezes |
|
Há muitos anos eu precisava remover espaços no final de uma string em JavaScript e percebi que o objeto String, na época, não oferecia a função trim(). Não me restou opção a não ser sentar e escrever o código na mão mesmo. Hoje em dia não precisamos mais dele, mas fica aí para que você entenda a lógica empregada na resolução do problema. Veja a página HTML completa com o exemplo:
<!doctype html>
<html>
<head>
<title>Strings em JavaScript</title>
</head>
<body>
<script type="text/javascript">
// função personalizada que remove os espaços
// no final de uma string
function trim_final(string){
// primeiro definimos o código do espaço
var espaco = String.fromCharCode(32);
// obtemos o tamanho da string
var tamanho = string.length;
// e criamos uma string temporária
var temp = "";
// a string está vazia?
if(tamanho < 0){
return "";
}
// uma variável temporária para percorrermos
// a string de trás para frente
var temp2 = tamanho - 1;
while(temp2 > -1){
if(string.charAt(temp2) == espaco){
// não faz nada
}
else{
temp = string.substring(0, temp2 + 1);
break;
}
// decrementamos a variável temp2
temp2--;
}
return temp;
}
// vamos testar a função trim_final()
var frase = "Gosto muito de JavaScript ";
document.write("Com espaços no final: " +
frase + "#" + "<br>");
// vamos remover os espaços no final da string
frase = trim_final(frase);
document.write("Sem espaços no final: " +
frase + "#" + "<br>");
</script>
</body>
</html>
Ao executar este código JavaScript nós teremos o seguinte resultado: Com espaços no final: Gosto muito de JavaScript # Sem espaços no final: Gosto muito de JavaScript# |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como converter uma string em um valor de ponto-flutuante em JavaScript usando a função parseFloat() |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como testar se uma string contém uma determinada substring em JavaScript usando a função includes() Python - Como converter Metros Quadrados em Quilômetros Quadrados em Python - Python para Física e Engenharia JavaScript - Como remover elementos duplicados de um array em JavaScript usando as funções filter() e indexOf() do objeto Array Delphi - Como usar o controle TStringGrid em suas aplicações Delphi - O componente TStringGrid do Delphi |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






