Différences entre versions de « 100daysofcode/R2 »

De Mi caja de notas

< 100daysofcode
Ligne 87 : Ligne 87 :
  
  
Les trucs
+
==== truc sur les priorités des opérateurs ====
 +
 
 +
Est ce que
 +
 
 +
`type(varA) == str or type(varB) == str`
 +
 
 +
est équivalent à
 +
 
 +
`type(varA) or type(varB) == str` ?
  
Est ce que `type(varA) == str or type(varB) == str` est équivalent à `type(varA) or type(varB) == str` ?
 
 
Celles-ci ne sont pas équivalentes du fait de la [précédence de Python](https://docs.python.org/3.5/reference/expressions.html#operator-precedence) (quelques opérateurs ont une priorité plus haute que d'autres).  
 
Celles-ci ne sont pas équivalentes du fait de la [précédence de Python](https://docs.python.org/3.5/reference/expressions.html#operator-precedence) (quelques opérateurs ont une priorité plus haute que d'autres).  
 +
 
Le `==` a une priorité plus haute que le `or` et sera évalué en premier.
 
Le `==` a une priorité plus haute que le `or` et sera évalué en premier.
 +
 
Par conséquent :  
 
Par conséquent :  
  
Ligne 104 : Ligne 113 :
 
`( True )`   
 
`( True )`   
  
Parce que "anything" ou "True" prendra simplement la valeur de "True" (en algèvre booléen).   
+
Parce que "n-importe-quoi" ou "True" prendra simplement la valeur de "True" (en algèvre booléen).   
  
 
Et l'autre expression :  
 
Et l'autre expression :  

Version du 5 septembre 2018 à 05:11

2ème défi 100daysofcode démarré le 2018-246

R2D1

MIT : Introduction to Computer Science and Programming Using Python

1. Param + config Python + Spyder (Environnement de dév) 1. Semaine 1 : Fondamentaux Python 1. Support Slides Partie 1 et 2 : File:lec1.pdf + File:lec2_branch_loops.pdf

Conditionnelle imbriquée :

   x = int(input('Entre un nombre entier : '))
   if x%2 == 0:
       if x%3 == 0:
           print('Divisible par 2 et 3')
       else:
           print('Divisible par 2 et pas par 3')
   elif x%3 == 0:    
       print('Divisible par 3 et non par 2')


Indentation :

   x = float(input("Entre un nombre pour x : "))
   y = float(input("Entre un nombre pour y : "))
   if x == y:
       print("x et y sont égaux")
       if y!= 0:
           print("par conséquent, x / y donne ", x/y)
   elif x < y:
       print("x est le plus petit")
   else:
       print("y est le plus petit")
   print("Merci !")

R2D2

2018-247

Ressources

Config python sur navigateur anaconda

  • Mise à jour en cours de Spyder 3.2.8 vers la 3.3.1

Ouvert Anaconda et à l'invite de mise à jour de Spyder (IDE de dév Python), fermeture de Spyder et lancement du terminal :

   conda update qt pyqt
   conda update spyder

Note : mise à jour faite directement dans le navigateur Anaconda

cours 2

Éléments clés des programmes

  • Bindings
  • Strings
  • Input/Output
  • IDEs
  • Control Flow
  • Iteration

R2D3

2018-248

... Suite Python comparaison avec exercice de comparaison de variables

Exercice vara varb

Supposons que deux variables, `varA` and `varB`, soient deux valeurs déclarées, que ce soit des nombres ou des chaînes.

Écrire un bout de code Python qui évalue `varA` et `varB`, et affiche ensuite l'un des messages suivants :


  • `"string involved"` si l'une des `varA` ou `varB` sont des chaînes
  • `"bigger"` si `varA` est plus grand que `varB`
  • `"equal"` si `varA` est égal à `varB`
  • `"smaller"` si `varA` est plus petit que `varB`


truc sur les priorités des opérateurs

Est ce que

`type(varA) == str or type(varB) == str`

est équivalent à

`type(varA) or type(varB) == str` ?

Celles-ci ne sont pas équivalentes du fait de la [précédence de Python](https://docs.python.org/3.5/reference/expressions.html#operator-precedence) (quelques opérateurs ont une priorité plus haute que d'autres).

Le `==` a une priorité plus haute que le `or` et sera évalué en premier.

Par conséquent :

`type(varA) or type(varB) == str`

sera évalué comme suit, si nous plaçons explicitement des parenthèses :

`type(varA) or ( type(varB) == str )`

`True or ( type(varB) == str )`

`( True )`

Parce que "n-importe-quoi" ou "True" prendra simplement la valeur de "True" (en algèvre booléen).

Et l'autre expression :

`type(varA) == str or type(varB) == str`

sera évaluée comme suit, si nous y plaçons des parenthèses :

`( type(varA) == str ) or ( type(varB) == str )`

Aussi, nous devrons vérifier que chacune des expressions entre parenthèses pour voir si elles sont vraies ou non pour déterminer le résultat final.

Par conséquent ces deux expressions ne sont pas égales.