Codage python sur VSC pas de réponse

Résolu
Lucie - Modifié le 7 juin 2023 à 11:36
mamiemando Messages postés 33088 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 30 avril 2024 - 8 juin 2023 à 13:19

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

A voir également:

1 réponse

jee pee Messages postés 39677 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 2 mai 2024 9 251
Modifié le 7 juin 2023 à 09:39

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
mamiemando Messages postés 33088 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 30 avril 2024 7 751
7 juin 2023 à 11:39

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
Lucie > mamiemando Messages postés 33088 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 30 avril 2024
7 juin 2023 à 18:25

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
mamiemando Messages postés 33088 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 30 avril 2024 7 751 > Lucie
8 juin 2023 à 13:19

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