Codage python sur VSC pas de réponse

Résolu
Lucie -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour ,

Je commence tout juste la programmation. Je suis sur IOS et j'ai installé Visual Studio Code ainsi que l'extension Python. J'ai sais un code tiré d'un cours de programmation pour débutants, qui détermine le prochain vendredi 13.

from datetime import date

def prochain13(x):
  m = x.month
  d = x.day
  y = x.year
  if d < 13:
    return date(y, m, 13)
  else:
    if m < 12:
      return date(y, m + 1, 13)
    else:
      return date(y + 1, 1, 13)

x = date.today()
while True:
  x = prochain13(x)
  if x.weekday() == 4:
    print('vendredi 13/(x.month)/(x.year)')
    break

Mais, lorsque j'exécute le fichier j'ai toujours ce message, alors que je devrais avoir le résultat du code: 

$ /usr/bin/python3 /Users/lucie/Desktop/Vendredi13.py
vendredi 13/(x.month)/(x.year)

Pourriez-vous m'aider à trouver une solution? 

Merci d'avance

1 réponse

  1. jee pee Messages postés 31872 Date d'inscription   Statut Modérateur Dernière intervention   9 977
     

    Bonjour,

    C'est ton formatage de sortie qui ne va pas, tu as mis tes noms de variables entre ' ' elles ne sont donc pas interprétées, c'est juste du texte. Tu pourrais utiliser une chaine constituée à la main, ou un format python : https://docs.python.org/fr/3/tutorial/inputoutput.html

    from datetime import date
    def prochain13(x):
       m = x.month
       d = x.day
       y = x.year
       if d < 13:
          return date(y, m, 13)
       else:
          if m < 12:
             return date(y, m + 1, 13)
          else:
             return date(y + 1, 1, 13)
    
    x = date.today()
    while True:
       x = prochain13(x)
       if x.weekday() == 4:
          print('vendredi 13/' + str(x.month) + '/' + str(x.year))
          print('vendredi 13/{0}/{1}'.format(x.month, x.year))
          break
    
    =========================== RESTART: D:\vendredi13.py ==========================
    vendredi 13/10/2023
    vendredi 13/10/2023

    0
    1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       

      Bonjour Lucie,

      Je suspecte que tu as mal recopié ton exemple, et que dans le code initial, l'affichage impliquait une f-string.

      print(f'vendredi 13/{x.month}/{x.year}')

      Note l'ajout du "f" devant la chaîne (qui signifie que l'on va utiliser une f-string) et le remplacement des parenthèses par des accolades.

      La solution proposée par jee-pee est équivalente, mais comme tu peux le voir dans le code qu'il propose, ne pas utiliser une f-string conduit à une syntaxe moins élégante.

      Bonne chance

      0
      1. Lucie > mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention  
         

        Merci à vous pour vos retours. 

        Maintenant mon soucis est que je ne peux plus saisir un d, la lettre "d"

        en bas de la fenetre je vois "Touche (D)utilisée. En attente d'une seconde touche .... 

        c'est dû à quoi celà? 

        Je recherche si toute fois une mise à jour aurai été faite avec des raccourcis mais c'est étrange, il s'agit de la seule touche du clavier que je ne peux plus utiliser sur VSC. 

        0
      2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940 > Lucie
         

        Bonjour Lucie,

        • Le problème que tu poses dans le message #3 est un autre problème indépendant, donc merci de poser ta question dans une nouvelle discussion.
        • Idéalement, crée un compte CCM ce qui te permettra de joindre une capture d'écran illustrant ton problème.

        Bonne chance

        0