파이썬 소개
Para quem usa Linux ou Mac sugiro este tutorial de instalação com pyenv.
python -V
IPython
sudo -H pip install ipython
파이썬 해석*.pyc를 사용하시겠습니까?
Contém os bytecodes compilados a partir do arquivo .py.
파이썬과 언어 해석. Mas também compila. Leia mais aqui.
O Python은 Windows에서 .exe를 사용할 수 있습니다. Veja py2exe.
티파젬 디나미카
예:
>>> a = 42
>>> type(a)
<class 'int'>
>>> b = 3.14
>>> type(b)
<class 'float'>
>>> t = 'palavra'
>>> type(t)
<class 'str'>
오 인터프리터 파이썬
$ python
Python 3.5.0 (default, Dec 8 2015, 01:17:16)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Python 직접 터미널로 프로그램을 실행합니다.
$ python -c "print(40 + 2)"
인도에서 Hello World로
from datetime import datetime
from time import sleep
while True:
hora = datetime.now()
print(hora.strftime('%H:%M:%S'))
sleep(1)
eu quero ir para:
for i in range(1, 11):
j = i * i
print(i, j)
print('fim')
마오 나 마사
lanches.py
import sys
from random import choice
lanches = ['Hot-Dog', 'X-Salada', 'Tapioca', 'Pizza', 'Batata Frita']
bebidas = ['Coca-Cola', 'Fanta', 'Guaraná', 'Suco de Laranja', 'Cerveja']
numero = input('Digite um número de 0 a 4: ')
if int(numero) > 4:
print('O número digitado está fora do intervalo.')
# Experimente digitar -5 e -6
sys.exit(1)
def bebida():
return choice(bebidas)
for i in range(3):
if i == 0:
print('Primeira refeição: %s + %s' % (lanches[int(numero)], bebida()))
elif i == 1:
print('Segunda refeição: %s + %s' % (lanches[int(numero)], bebida()))
else:
print('Terceira refeição: %s + %s' % (lanches[int(numero)], bebida()))
O 모듈 교장은 Python을 수행합니다.
def hello():
print('Hello World')
if __name__ == '__main__':
print('Oi')
O segredo de um código pythônico
'''
Um comentário de múltiplas linhas.
Também conhecido como Docstring.
'''
import os
def main():
print('Hello world!')
print("O'Relly")
print('O\'Relly')
my_sum(5, 10)
print('=' * 10)
text = 'O diretório atual é '
print(text + os.getcwd())
foods = ['maçãs', 'laranjas', 'bananas']
for food in foods:
print('Eu gosto de', food)
print('Contando até dez:')
for i in range(1, 11):
print(i)
def my_sum(a, b):
value = a + b
print('%s mais %s é igual a %s' % (a, b, value))
if value < 50:
print('foo')
elif (value >= 50) and \
((a == 42) or (b == 24)):
print('bar')
else:
print('moo')
return value # comentário de uma linha
if __name__ == '__main__':
main()
Importando sua própria biblioteca
mycapitalize.py
def _capitalize(texto):
return texto.capitalize()
palavras.py
from mycapitalize import _capitalize
palavras = 'joaquim josé da silva xavier'
nome = []
for palavra in palavras.split():
print(_capitalize(palavra))
nome.append(_capitalize(palavra))
print(' '.join(nome))
운영자
(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)
7 / 3
7 // 3
7 % 3
연산자 = + - * / ** % //
bin(4)
bin(7)
import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
문자열
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
바꾸다
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
>>> a = 42
>>> type(a)
<class 'int'>
>>> b = 3.14
>>> type(b)
<class 'float'>
>>> t = 'palavra'
>>> type(t)
<class 'str'>
$ python
Python 3.5.0 (default, Dec 8 2015, 01:17:16)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Python 직접 터미널로 프로그램을 실행합니다.
$ python -c "print(40 + 2)"
인도에서 Hello World로
from datetime import datetime
from time import sleep
while True:
hora = datetime.now()
print(hora.strftime('%H:%M:%S'))
sleep(1)
eu quero ir para:
for i in range(1, 11):
j = i * i
print(i, j)
print('fim')
마오 나 마사
lanches.py
import sys
from random import choice
lanches = ['Hot-Dog', 'X-Salada', 'Tapioca', 'Pizza', 'Batata Frita']
bebidas = ['Coca-Cola', 'Fanta', 'Guaraná', 'Suco de Laranja', 'Cerveja']
numero = input('Digite um número de 0 a 4: ')
if int(numero) > 4:
print('O número digitado está fora do intervalo.')
# Experimente digitar -5 e -6
sys.exit(1)
def bebida():
return choice(bebidas)
for i in range(3):
if i == 0:
print('Primeira refeição: %s + %s' % (lanches[int(numero)], bebida()))
elif i == 1:
print('Segunda refeição: %s + %s' % (lanches[int(numero)], bebida()))
else:
print('Terceira refeição: %s + %s' % (lanches[int(numero)], bebida()))
O 모듈 교장은 Python을 수행합니다.
def hello():
print('Hello World')
if __name__ == '__main__':
print('Oi')
O segredo de um código pythônico
'''
Um comentário de múltiplas linhas.
Também conhecido como Docstring.
'''
import os
def main():
print('Hello world!')
print("O'Relly")
print('O\'Relly')
my_sum(5, 10)
print('=' * 10)
text = 'O diretório atual é '
print(text + os.getcwd())
foods = ['maçãs', 'laranjas', 'bananas']
for food in foods:
print('Eu gosto de', food)
print('Contando até dez:')
for i in range(1, 11):
print(i)
def my_sum(a, b):
value = a + b
print('%s mais %s é igual a %s' % (a, b, value))
if value < 50:
print('foo')
elif (value >= 50) and \
((a == 42) or (b == 24)):
print('bar')
else:
print('moo')
return value # comentário de uma linha
if __name__ == '__main__':
main()
Importando sua própria biblioteca
mycapitalize.py
def _capitalize(texto):
return texto.capitalize()
palavras.py
from mycapitalize import _capitalize
palavras = 'joaquim josé da silva xavier'
nome = []
for palavra in palavras.split():
print(_capitalize(palavra))
nome.append(_capitalize(palavra))
print(' '.join(nome))
운영자
(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)
7 / 3
7 // 3
7 % 3
연산자 = + - * / ** % //
bin(4)
bin(7)
import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
문자열
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
바꾸다
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ python -c "print(40 + 2)"
from datetime import datetime
from time import sleep
while True:
hora = datetime.now()
print(hora.strftime('%H:%M:%S'))
sleep(1)
eu quero ir para:
for i in range(1, 11):
j = i * i
print(i, j)
print('fim')
마오 나 마사
lanches.py
import sys
from random import choice
lanches = ['Hot-Dog', 'X-Salada', 'Tapioca', 'Pizza', 'Batata Frita']
bebidas = ['Coca-Cola', 'Fanta', 'Guaraná', 'Suco de Laranja', 'Cerveja']
numero = input('Digite um número de 0 a 4: ')
if int(numero) > 4:
print('O número digitado está fora do intervalo.')
# Experimente digitar -5 e -6
sys.exit(1)
def bebida():
return choice(bebidas)
for i in range(3):
if i == 0:
print('Primeira refeição: %s + %s' % (lanches[int(numero)], bebida()))
elif i == 1:
print('Segunda refeição: %s + %s' % (lanches[int(numero)], bebida()))
else:
print('Terceira refeição: %s + %s' % (lanches[int(numero)], bebida()))
O 모듈 교장은 Python을 수행합니다.
def hello():
print('Hello World')
if __name__ == '__main__':
print('Oi')
O segredo de um código pythônico
'''
Um comentário de múltiplas linhas.
Também conhecido como Docstring.
'''
import os
def main():
print('Hello world!')
print("O'Relly")
print('O\'Relly')
my_sum(5, 10)
print('=' * 10)
text = 'O diretório atual é '
print(text + os.getcwd())
foods = ['maçãs', 'laranjas', 'bananas']
for food in foods:
print('Eu gosto de', food)
print('Contando até dez:')
for i in range(1, 11):
print(i)
def my_sum(a, b):
value = a + b
print('%s mais %s é igual a %s' % (a, b, value))
if value < 50:
print('foo')
elif (value >= 50) and \
((a == 42) or (b == 24)):
print('bar')
else:
print('moo')
return value # comentário de uma linha
if __name__ == '__main__':
main()
Importando sua própria biblioteca
mycapitalize.py
def _capitalize(texto):
return texto.capitalize()
palavras.py
from mycapitalize import _capitalize
palavras = 'joaquim josé da silva xavier'
nome = []
for palavra in palavras.split():
print(_capitalize(palavra))
nome.append(_capitalize(palavra))
print(' '.join(nome))
운영자
(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)
7 / 3
7 // 3
7 % 3
연산자 = + - * / ** % //
bin(4)
bin(7)
import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
문자열
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
바꾸다
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
for i in range(1, 11):
j = i * i
print(i, j)
print('fim')
lanches.py
import sys
from random import choice
lanches = ['Hot-Dog', 'X-Salada', 'Tapioca', 'Pizza', 'Batata Frita']
bebidas = ['Coca-Cola', 'Fanta', 'Guaraná', 'Suco de Laranja', 'Cerveja']
numero = input('Digite um número de 0 a 4: ')
if int(numero) > 4:
print('O número digitado está fora do intervalo.')
# Experimente digitar -5 e -6
sys.exit(1)
def bebida():
return choice(bebidas)
for i in range(3):
if i == 0:
print('Primeira refeição: %s + %s' % (lanches[int(numero)], bebida()))
elif i == 1:
print('Segunda refeição: %s + %s' % (lanches[int(numero)], bebida()))
else:
print('Terceira refeição: %s + %s' % (lanches[int(numero)], bebida()))
O 모듈 교장은 Python을 수행합니다.
def hello():
print('Hello World')
if __name__ == '__main__':
print('Oi')
O segredo de um código pythônico
'''
Um comentário de múltiplas linhas.
Também conhecido como Docstring.
'''
import os
def main():
print('Hello world!')
print("O'Relly")
print('O\'Relly')
my_sum(5, 10)
print('=' * 10)
text = 'O diretório atual é '
print(text + os.getcwd())
foods = ['maçãs', 'laranjas', 'bananas']
for food in foods:
print('Eu gosto de', food)
print('Contando até dez:')
for i in range(1, 11):
print(i)
def my_sum(a, b):
value = a + b
print('%s mais %s é igual a %s' % (a, b, value))
if value < 50:
print('foo')
elif (value >= 50) and \
((a == 42) or (b == 24)):
print('bar')
else:
print('moo')
return value # comentário de uma linha
if __name__ == '__main__':
main()
Importando sua própria biblioteca
mycapitalize.py
def _capitalize(texto):
return texto.capitalize()
palavras.py
from mycapitalize import _capitalize
palavras = 'joaquim josé da silva xavier'
nome = []
for palavra in palavras.split():
print(_capitalize(palavra))
nome.append(_capitalize(palavra))
print(' '.join(nome))
운영자
(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)
7 / 3
7 // 3
7 % 3
연산자 = + - * / ** % //
bin(4)
bin(7)
import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
문자열
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
바꾸다
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import sys
from random import choice
lanches = ['Hot-Dog', 'X-Salada', 'Tapioca', 'Pizza', 'Batata Frita']
bebidas = ['Coca-Cola', 'Fanta', 'Guaraná', 'Suco de Laranja', 'Cerveja']
numero = input('Digite um número de 0 a 4: ')
if int(numero) > 4:
print('O número digitado está fora do intervalo.')
# Experimente digitar -5 e -6
sys.exit(1)
def bebida():
return choice(bebidas)
for i in range(3):
if i == 0:
print('Primeira refeição: %s + %s' % (lanches[int(numero)], bebida()))
elif i == 1:
print('Segunda refeição: %s + %s' % (lanches[int(numero)], bebida()))
else:
print('Terceira refeição: %s + %s' % (lanches[int(numero)], bebida()))
def hello():
print('Hello World')
if __name__ == '__main__':
print('Oi')
O segredo de um código pythônico
'''
Um comentário de múltiplas linhas.
Também conhecido como Docstring.
'''
import os
def main():
print('Hello world!')
print("O'Relly")
print('O\'Relly')
my_sum(5, 10)
print('=' * 10)
text = 'O diretório atual é '
print(text + os.getcwd())
foods = ['maçãs', 'laranjas', 'bananas']
for food in foods:
print('Eu gosto de', food)
print('Contando até dez:')
for i in range(1, 11):
print(i)
def my_sum(a, b):
value = a + b
print('%s mais %s é igual a %s' % (a, b, value))
if value < 50:
print('foo')
elif (value >= 50) and \
((a == 42) or (b == 24)):
print('bar')
else:
print('moo')
return value # comentário de uma linha
if __name__ == '__main__':
main()
Importando sua própria biblioteca
mycapitalize.py
def _capitalize(texto):
return texto.capitalize()
palavras.py
from mycapitalize import _capitalize
palavras = 'joaquim josé da silva xavier'
nome = []
for palavra in palavras.split():
print(_capitalize(palavra))
nome.append(_capitalize(palavra))
print(' '.join(nome))
운영자
(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)
7 / 3
7 // 3
7 % 3
연산자 = + - * / ** % //
bin(4)
bin(7)
import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
문자열
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
바꾸다
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
'''
Um comentário de múltiplas linhas.
Também conhecido como Docstring.
'''
import os
def main():
print('Hello world!')
print("O'Relly")
print('O\'Relly')
my_sum(5, 10)
print('=' * 10)
text = 'O diretório atual é '
print(text + os.getcwd())
foods = ['maçãs', 'laranjas', 'bananas']
for food in foods:
print('Eu gosto de', food)
print('Contando até dez:')
for i in range(1, 11):
print(i)
def my_sum(a, b):
value = a + b
print('%s mais %s é igual a %s' % (a, b, value))
if value < 50:
print('foo')
elif (value >= 50) and \
((a == 42) or (b == 24)):
print('bar')
else:
print('moo')
return value # comentário de uma linha
if __name__ == '__main__':
main()
mycapitalize.py
def _capitalize(texto):
return texto.capitalize()
palavras.py
from mycapitalize import _capitalize
palavras = 'joaquim josé da silva xavier'
nome = []
for palavra in palavras.split():
print(_capitalize(palavra))
nome.append(_capitalize(palavra))
print(' '.join(nome))
운영자
(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)
7 / 3
7 // 3
7 % 3
연산자 = + - * / ** % //
bin(4)
bin(7)
import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
문자열
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
바꾸다
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def _capitalize(texto):
return texto.capitalize()
from mycapitalize import _capitalize
palavras = 'joaquim josé da silva xavier'
nome = []
for palavra in palavras.split():
print(_capitalize(palavra))
nome.append(_capitalize(palavra))
print(' '.join(nome))
운영자
(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)
7 / 3
7 // 3
7 % 3
연산자 = + - * / ** % //
bin(4)
bin(7)
import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
문자열
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
바꾸다
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)
7 / 3
7 // 3
7 % 3
bin(4)
bin(7)
import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
문자열
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
바꾸다
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
nome.replace('a','4')
슬라이스
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
리스타
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
변경 목록에 추가
lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)
lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')
L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L
N = [30, 10, 20]
sorted(N)
N
Pilhas com 목록
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
투플라스
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
São objetos imutáveis.
t = (1, 2, 3)
type(t)
# uma tupla de tuplas
포시코 = ((1, 2), (2, 2), (5, 2), (0, 3))
# um jeito de percorrer
posicoes의 pos:
i, j = 위치
인쇄(i, j)
인쇄('-' * 10)
# outra forma de percorrer
for i, j in posicoes:
print(i, j)
나뉘다
palavras = 'joaquim josé da silva xavier'
palavras.split()
하는 동안
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
palavras = 'joaquim josé da silva xavier'
palavras.split()
n = 1
while(n < 11):
print('n =', n)
n = 1
while(n < 11):
print('n =', n)
n = n + 1
print('Fim do loop')
~을 위한
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
if else (조건)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
for n in range(1, 5):
print('n =', n)
print('Fim do loop')
for n in range(5):
for j in ['a', 'b', 'c']:
print('n =', n, 'e j =', j, '--> ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
print(idx, item)
a > b
a < b
a >= b
a <= b
a != b
a == b
타벨라 베르다데
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
Coloque o not no exemplo anterior e veja o resultado.
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
목록 이해
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
print('Ok')
else:
print('Errado')
if True:
print('Verdadeiro')
else:
print('Falso')
if 3 % 2:
print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
if nota >= 7:
print('Aprovado')
elif nota >= 4:
print('Recuperação')
else:
print('Reprovado')
[x ** 2 for x in range(10)]
소마 드 베토레스
a = [1, 2]
b = [9, 18]
c = []
for i in range(len(a)):
c.append((a[i], b[i]))
for x, y in c: print(x + y)
for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar
vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
return c.lower() in 'aeiou'
print(vogal('a'))
print(vogal('b'))
palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
유형(), 도움말(), dir()
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
다중 속성
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
디시오나리오스
São coleções de valores identificados por chaves únicas.
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
As chaves são semper únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: 기초 오페라
Criar um dicionário vazio
d = {}
d = dict()
Acessar um item do dicionário
print(d[chave])
추가 또는 선택 아이템
d[chave] = valor
리무버 음 항목
del d[chave]
Verificar a existência de uma chave
d.has_key(c)
c in d
Obter listas de chaves, valores e pares
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
기능
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n):
if n:
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
return mn
if __name__ == '__main__':
lista = [1, 3, -7, 9]
print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
print('Keywords:', kwargs)
if __name__ == '__main__':
func(a=1, b=42)
dic = {'a': 1, 'b': 42}
func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
for i in args:
print(i)
print('kwargs:', kwargs)
for k in kwargs:
print(k, kwargs[k])
if __name__ == '__main__':
func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.
l = lambda x: x * 2
print(l(3))
for i in range(11):
l = lambda x: x * i
print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta
from random import randint, random
def gen_number():
return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year):
# gera um date no formato yyyy-mm-dd
start = date(min_year, 1, 1)
years = max_year - min_year + 1
end = start + timedelta(days=365 * years)
return start + (end - start) * random()
def convert_date(d):
# converte data no formato mês, dia, ano.
return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0}
Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return False
def test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == True
if name == 'main':
test_par()
Existe uma outra solução para este problema:
def par(n):
return n % 2 == 0
Unittest
unittest
import unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self):
self.assertTrue(par(0))
self.assertFalse(par(1))
# self.assertTrue(par(2))
# self.assertTrue(par(4))
# self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest
def par(n):
pass
class EvenNumberTest(unittest.TestCase):
def test_0(self):
self.assertEqual(par(0), True)
def test_1(self):
self.assertEqual(par(1), False)
def test_2(self):
self.assertEqual(par(2), True)
def test_4(self):
self.assertEqual(par(4), True)
def test_42(self):
self.assertEqual(par(42), True)
if __name__ == '__main__':
unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Arrumando
def divide(n, d):
try:
result = n / d
except ZeroDivisionError as zde:
print(zde)
else:
print('O resultado é:', result)
return result
if __name__ == '__main__':
n = int(input('Digite um numerador:'))
d = int(input('Digite um denominador:'))
divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever
import csv
with open('file.csv', 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([1, 'Um', 'One'])
extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email
1,admin,[email protected]
2,regis,[email protected]
3,pedro,[email protected]
4,aline,[email protected]
5,bianca,[email protected]
import csv
with open('users.csv') as f:
users_reader = csv.reader(f)
for row in users_reader:
print(row)
Resultado dos print do bloco anterior:
['id', 'username', 'email']
['1', 'admin', '[email protected]']
['2', 'regis', '[email protected]']
['3', 'pedro', '[email protected]']
['4', 'aline', '[email protected]']
['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv
with open('users.csv') as f:
users_reader = csv.DictReader(f)
for row in users_reader:
print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todo
Orientação a Objetos
Abra o interpretador ipython e digite:
TV
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao():
def __init__(self):
self.ligada = False
self.canal = 2
def muda_canal_para_baixo(self):
self.canal -= 1
def muda_canal_para_cima(self):
self.canal += 1
if __name__ == '__main__':
tv = Televisao()
print('Canal inicial:', tv.canal)
print('Ligada:', tv.ligada)
tv.ligada = True
tv.canal = 5
print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
Veículos
class Veiculo(object):
def __init__(self):
self.porta = 0
self.roda = 2
class VeiculoMotorizado(Veiculo):
def __init__(self):
Veiculo.__init__(self)
self.ligado = False
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:' ,bicicleta.porta)
print('Roda:' ,bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)
moto.ligar_motor()
print('Motor:' ,moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
Veículos melhorado
class Veiculo(object):
def __init__(self, porta=0, roda=2):
super(Veiculo, self).__init__()
self.porta = porta
self.roda = roda
class VeiculoMotorizado(Veiculo):
def __init__(self, porta=0, roda=2, ligado=False):
super(VeiculoMotorizado, self).__init__(porta, roda)
Veiculo.__init__(self)
self.ligado = ligado
def ligar_motor(self):
self.ligado = True
if __name__ == '__main__':
bicicleta = Veiculo()
print('Bicicleta:')
print('Porta:', bicicleta.porta)
print('Roda:', bicicleta.roda)
triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)
moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)
moto.ligar_motor()
print('Motor:', moto.ligado)
carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
Salas
rooms.py
class Person(object):
def __init__(self, username):
self.username = username
class Room(object):
def __init__(self, room):
self.room = room
self.persons = []
def add_person(self, person):
'''
Adiciona pessoas na lista 'persons'.
Se for uma lista ou tupla usa 'extend'.
Caso contrário, usa 'append'.
'''
if isinstance(person, (list, tuple)):
self.persons.extend(person)
else:
self.persons.append(person)
def count_persons(self):
# Conta os items da lista 'persons'.
return len(self.persons)
if __name__ == '__main__':
sala1 = Room('Think Lab')
print(sala1.room)
print(sala1.persons)
sala1.add_person('Regis')
sala1.add_person('Fernando')
print(sala1.room, sala1.count_persons(), sala1.persons)
sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)
sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/franzkarol/introducao-de-python-47n8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{'chave': valor}
uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
print(chave)
for chave, valor in uf.items():
print(chave, valor)
for chave, valor in sorted(uf.items()):
print(chave, valor)
d = {}
d = dict()
print(d[chave])
d[chave] = valor
del d[chave]
d.has_key(c)
c in d
d.keys()
d.values()
d.items()
Acessar um item que talvez não exista
d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
print(nome)
for nome in sorted(uf.values()):
print(nome)
def message():
pass
def message():
return 'Hello World'
def soma(a, b):
return a + b
Argumentos Posicionais
def func(a, b, c):
print(a, b, c)
if __name__ == '__main__':
func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
print(a, b, c)
if __name__ == '__main__':
func(1)
func(b=5, a=7, c=9)
func(40, c=9)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
def func(*args):
print('Positional:', args)
if __name__ == '__main__':
lista = [-1, 100, 0, 2, 3, 4]
func(lista)
func(*lista)
Argumentos Posicionais Variáveis
'''
minimum(1, 3, -7, 9)
-7
'''
def minimum(*n): if n: mn = n[0] for value in n[1:]: if value < mn: mn = value return mn if __name__ == '__main__': lista = [1, 3, -7, 9] print(minimum(*lista)) python -m doctest minimum.py Argumentos Nomeados def func(**kwargs): print('Keywords:', kwargs) if __name__ == '__main__': func(a=1, b=42) dic = {'a': 1, 'b': 42} func(**dic) Tudo misturado def func(a, b, c=7, *args, **kwargs): print('a, b, c:', a, b, c) print('args:', args) for i in args: print(i) print('kwargs:', kwargs) for k in kwargs: print(k, kwargs[k])
if __name__ == '__main__': func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'}) python function_all.py Lambda São funções anônimas. l = lambda x: x * 2 print(l(3)) for i in range(11): l = lambda x: x * i print(l(3))
프로그래밍 기능 및 람다
Números impares gerado com programação funcional e lambda.
nums = range(1,11) print(list(filter(lambda x: x % 2, nums)))
모듈로스
gen_random_values.py
from datetime import date, datetime, timedelta from random import randint, random
def gen_number(): return randint(1, 10)
def gen_date(min_year=1900, max_year=datetime.now().year): # gera um date no formato yyyy-mm-dd start = date(min_year, 1, 1) years = max_year - min_year + 1 end = start + timedelta(days=365 * years) return start + (end - start) * random()
def convert_date(d): # converte data no formato mês, dia, ano. return d.strftime('%m/%d/%Y')
Abra o 해석자 Python
from gen_random_values import gen_number, gen_date, convert_date
gen_number()
gen_date()
convert_date(gen_date())
Testes
Doctest
'''
square(2)
4
square(3)
9
square(4)
16
'''
데프 제곱(n):
반환 n ** 2
인쇄(정사각형(2))
인쇄(정사각형(3))
인쇄(정사각형(4))
파이썬 -m doctest square.py
테스트 심플
def test_par():
어설션 par(0) == 참
어설션 par(1) == 거짓
이름 == '메인'인 경우:
테스트_파()
python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:
P = {x \in \Z | x = 2y, y \in \Z}
Número par é todo número que ao ser dividido por dois deixa resto zero.
P = {x \in \Z | x mod 2 = 0} Arrumando o código temos:
def par(n):
if n % 2 == 0:
return True
return Falsedef test_par():
assert par(0) == True
assert par(1) == False
assert par(2) == True
assert par(4) == True
assert par(42) == Trueif name == 'main':
test_par()
Existe uma outra solução para este problema:def par(n):
return n % 2 == 0
Unittest
unittestimport unittest
class EvenNumberTest(unittest.TestCase):
def test_par(self): self.assertTrue(par(0)) self.assertFalse(par(1)) # self.assertTrue(par(2)) # self.assertTrue(par(4)) # self.assertTrue(par(42))
if name == 'main':
unittest.main()
python par2.py
Agora separamos os testes colocando um assert por teste.
import unittest def par(n): pass
class EvenNumberTest(unittest.TestCase): def test_0(self): self.assertEqual(par(0), True) def test_1(self): self.assertEqual(par(1), False) def test_2(self): self.assertEqual(par(2), True) def test_4(self): self.assertEqual(par(4), True) def test_42(self): self.assertEqual(par(42), True) if __name__ == '__main__': unittest.main()
Vendo o resultado de todos os asserts.
python par3.py -v
Try/except
def divide(n, d):
return n / d
if __name__ == '__main__': n = int(input('Digite um numerador:')) d = int(input('Digite um denominador:')) divide(n, d)
Arrumando
def divide(n, d): try: result = n / d except ZeroDivisionError as zde: print(zde) else: print('O resultado é:', result) return result if __name__ == '__main__': n = int(input('Digite um numerador:')) d = int(input('Digite um denominador:')) divide(n, d) Random from random import randint, random, randrange, choice colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom'] for i in range(1,11): print(i, choice(colors))
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV
Escrever import csv with open('file.csv', 'w') as f: csv_writer = csv.writer(f) csv_writer.writerow([1, 'Um', 'One']) extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']] csv_writer.writerows(extra_rows)
Ler
Considere o CSV a seguir:
id,username,email 1,admin,[email protected] 2,regis,[email protected] 3,pedro,[email protected] 4,aline,[email protected] 5,bianca,[email protected] import csv with open('users.csv') as f: users_reader = csv.reader(f) for row in users_reader: print(row) Resultado dos print do bloco anterior: ['id', 'username', 'email'] ['1', 'admin', '[email protected]'] ['2', 'regis', '[email protected]'] ['3', 'pedro', '[email protected]'] ['4', 'aline', '[email protected]'] ['5', 'bianca', '[email protected]']
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:
import csv with open('users.csv') as f: users_reader = csv.DictReader(f) for row in users_reader: print(row['id'], row['username'], row['email'])
Resultado dos print do bloco anterior:
1 admin [email protected]
2 regis [email protected]
3 pedro [email protected]
4 aline [email protected]
5 bianca [email protected]
JSON
todoOrientação a Objetos
Abra o interpretador ipython e digite:TV
class Televisao(): def __init__(self): self.ligada = False self.canal = 2 tv_quarto = Televisao() tv_sala = Televisao() tv_quarto.ligada tv_quarto.canal tv_sala.ligada = True tv_sala.canal = 5 tv_sala.ligada tv_sala.canal
Agora crie um programa chamado tv.py.
class Televisao(): def __init__(self): self.ligada = False self.canal = 2 def muda_canal_para_baixo(self): self.canal -= 1 def muda_canal_para_cima(self): self.canal += 1 if __name__ == '__main__': tv = Televisao() print('Canal inicial:', tv.canal) print('Ligada:', tv.ligada) tv.ligada = True tv.canal = 5 print('Ligada:', tv.ligada) print('Canal inicial:', tv.canal) tv.muda_canal_para_cima() print('Canal +', tv.canal) tv.muda_canal_para_cima() print('Canal +', tv.canal) tv.muda_canal_para_baixo() print('Canal -', tv.canal) Veículos class Veiculo(object): def __init__(self): self.porta = 0 self.roda = 2
class VeiculoMotorizado(Veiculo): def __init__(self): Veiculo.__init__(self) self.ligado = False def ligar_motor(self): self.ligado = True
if __name__ == '__main__': bicicleta = Veiculo() print('Bicicleta:') print('Porta:' ,bicicleta.porta) print('Roda:' ,bicicleta.roda) triciclo = Veiculo() print('Triciclo:') triciclo.roda = 3 print('Porta:' ,triciclo.porta) print('Roda:' ,triciclo.roda) moto = VeiculoMotorizado() print('Moto:') print('Porta:' ,moto.porta) print('Roda:' ,moto.roda) print('Motor:' ,moto.ligado) moto.ligar_motor() print('Motor:' ,moto.ligado) carro = VeiculoMotorizado() carro.porta = 4 carro.roda = 4 carro.ligar_motor() print('Carro:') print('Porta:' ,carro.porta) print('Roda:' ,carro.roda) print('Motor:' ,carro.ligado) Veículos melhorado class Veiculo(object): def __init__(self, porta=0, roda=2): super(Veiculo, self).__init__() self.porta = porta self.roda = roda
class VeiculoMotorizado(Veiculo): def __init__(self, porta=0, roda=2, ligado=False): super(VeiculoMotorizado, self).__init__(porta, roda) Veiculo.__init__(self) self.ligado = ligado def ligar_motor(self): self.ligado = True
if __name__ == '__main__': bicicleta = Veiculo() print('Bicicleta:') print('Porta:', bicicleta.porta) print('Roda:', bicicleta.roda) triciclo = Veiculo() print('Triciclo:') triciclo.roda = 3 print('Porta:', triciclo.porta) print('Roda:', triciclo.roda) moto = VeiculoMotorizado() print('Moto:') print('Porta:', moto.porta) print('Roda:', moto.roda) print('Motor:', moto.ligado) moto.ligar_motor() print('Motor:', moto.ligado) carro = VeiculoMotorizado() carro.porta = 4 carro.roda = 4 carro.ligar_motor() print('Carro:') print('Porta:', carro.porta) print('Roda:', carro.roda) print('Motor:', carro.ligado) Salas
rooms.py
class Person(object): def __init__(self, username): self.username = username
class Room(object): def __init__(self, room): self.room = room self.persons = [] def add_person(self, person): ''' Adiciona pessoas na lista 'persons'. Se for uma lista ou tupla usa 'extend'. Caso contrário, usa 'append'. ''' if isinstance(person, (list, tuple)): self.persons.extend(person) else: self.persons.append(person)
def count_persons(self): # Conta os items da lista 'persons'. return len(self.persons)
if __name__ == '__main__': sala1 = Room('Think Lab') print(sala1.room) print(sala1.persons) sala1.add_person('Regis') sala1.add_person('Fernando') print(sala1.room, sala1.count_persons(), sala1.persons) sala2 = Room('Watson') sala2.add_person('Marcia') print(sala2.room, sala2.count_persons(), sala2.persons) sala3 = Room('Auditório') persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico'] sala3.add_person(persons) print(sala3.room, sala3.count_persons(), sala3.persons)
Reference
이 문제에 관하여(파이썬 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/franzkarol/introducao-de-python-47n8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)