La partie concernant la structure de contrôle de conseils à connaître lors de la programmation de compétitions avec Python2 a été divisée.
La version de Python est 2.7.5 (dans Python3, les spécifications telles que l'entrée et la sortie sont très différentes, il est donc recommandé de se référer à d'autres articles).
Personnellement, je n'aime pas beaucoup ça, mais pour réduire la quantité de code
while 1:
a = input()
if not a:
break
# ...
Je pense que les variables sont souvent passées à des conditions telles que les instructions if et while.
Résultat de la mise d'une variable dans l'instruction If en Python --LIFE WITH PYTHON
Moule | résultat |
---|---|
int | Faux si 0, Vrai sinon |
float | 0.Faux si 0, Vrai sinon |
str | ''(Caractères vides)Faux sinon, Vrai sinon |
list | []Faux sinon, Vrai sinon |
tuple | ()Faux sinon, Vrai sinon |
dict | {}Faux sinon, Vrai sinon |
set | set()Faux sinon, Vrai sinon |
None | False |
Dans certains cas, il peut être plus facile de terminer l'exécution du script au milieu, par exemple lorsqu'un symbole indiquant la fin de l'entrée ou une casse de coin est entré.
Dans de tels cas, utilisez quit ()
ou sys.exit ()
.
a = input()
if a == 0:
quit()
# ...
import sys
a = input()
if a == 0:
sys.exit()
# ...
2. Fonctions intégrées - Documentation Python 2.7ja1
Si vous souhaitez implémenter une itération simple comme "faire XX n fois" en Python
n = 5
for i in range(n):
print i
# 0
# 1
# 2
# 3
# 4
Ou
n = 5
for i in xrange(n):
print i
# 0
# 1
# 2
# 3
# 4
Il est courant d'écrire comme ça.
Ici, «range (n)» et «xrange (n)» renvoient un objet liste et un objet xrange dans lesquels les entiers de 0 à n sont disposés respectivement par ordre croissant.
L'objet xrange est un objet qui peut être récupéré lorsqu'une valeur est nécessaire à l'aide de l'évaluation du délai.
Si n est très grand, range (n)
générera une liste puis une boucle, ce qui augmentera l'utilisation de la mémoire, maisxrange (n)
évitera cela.
De plus, en ce qui concerne la vitesse, xrange ()
est plus rapide sauf dans certains cas.
[python - Should you always favor xrange() over range()? - Stack Overflow]
(http://stackoverflow.com/questions/135041/should-you-always-favor-xrange-over-range)
De plus, dans la plage (x), diverses plages peuvent être exprimées en utilisant les deuxième et troisième arguments ou en utilisant reverse ()
.
# range(start, stop)Alors, commencez à vous arrêter-Renvoie une liste de tous les nombres entiers jusqu'à 1 dans l'ordre croissant
print range(2, 6) # [2, 3, 4, 5]
# range(start, stop, step)Ainsi, parmi les entiers obtenus en augmentant la valeur à chaque pas depuis start, stop-Renvoie une liste de tout jusqu'à 1 dans l'ordre croissant
print range(5, 30, 5) # [5, 10, 15, 20, 25]
# reversed()Vous pouvez inverser la liste avec
for i in reversed(range(5)):
print i
# 4
# 3
# 2
# 1
# 0
Dans l'instruction for,
l = [1, 2, 3, 4, 5]
for e in l:
print e
output
1
2
3
4
5
Vous pouvez développer chaque élément de la liste comme dans, mais c'est
l = [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
for i, e in l:
print '#{0}: #{1}'.format(i, e)
output
0: a
1: b
2: c
3: d
Vous pouvez aussi faire comme ça.
enumerate
Lorsque vous tournez la boucle for, il peut être intéressant de pouvoir obtenir l'index et la valeur de la liste en même temps.
ʻEnumerate () `retourne un itérateur avec un index et sa valeur pour une liste d'arguments.
l = ['a', 'b', 'c', 'd']
for elem in enumerate(l):
print elem
# (0, 'a')
# (1, 'b')
# (2, 'c')
# (3, 'd')
#Le code ci-dessus est équivalent au code suivant
for i in range(len(l)):
print (i, l[i])
En Python, des clauses else peuvent être ajoutées aux instructions for et while. À ce stade, la clause else est appelée uniquement si elle n'a jamais été interrompue en interne à la fin de la boucle.
a = [1, 2, 3, 4, 5]
b = [1, 2, 4, 5]
x = 3
def find_val(l, x):
for i in range(len(l)):
if l[i] == x:
print i
break
else:
print 'Not found...'
#Trouvez sur_val()Code équivalent
def find_val2(l, x):
flag = False
for i in range(len(l)):
if l[i] == x:
print i
flag = True
break
if not flag:
print 'Not found...'
find_val(a, x) # 2
find_val(b, x) # Not found...
Il est très facile et pratique à écrire car il n'est pas nécessaire d'avoir un drapeau pour poser une question telle que "Trouver x. Si non trouvé, afficher ''". Cependant, s'il y a plusieurs boucles, la visibilité sera pire, il vaut donc mieux ne pas l'utiliser.