• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af slettet16019 | 30.11.2011 13:59

[LØST] Python hjælp - Problem med at kalde en metode i format-metoden

Programmering
Hej alle sammen,

Jeg har sat mig for at lære python.

Det er denne kode jeg har problemer med:


def secret_formula(started):
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans, jars, crates

start_point = 10000

#print ('We\'d have {0} beans, {1} jars, and {2} crates.'.format(secret_formula(start_point)))
print ('We\'d have %d beans, %d jars, and %d crates.' % secret_formula(start_point))


Helt præcist er det de to sidste statements jeg spørgsmål til. Det første statement der er udkommenteret virker ikke, men returnerer en index out of range fejl, mens det sidste statement virker fint. Er der en/nogle der kan forklare mig hvorfor? Og hvordan jeg eventuelt får mit statement til at virke.

Tak på forhånd :)

Lars

EDIT:
Det viste sig at jeg skulle sætte et * før secret_formula() metoden i det udkommenteret statement, så linien nu kommer til at se sådan ud:


#print ('We\'d have {0} beans, {1} jars, and {2} crates.'.format(*secret_formula(start_point)))

  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer2

# 1

14 år 3 måneder siden

Permalink

Indsendt af Kristho den 30. november 2011 kl. 17:55

Permalink

#0Det gør koden mere

#0
Det gør koden mere letlæselig, hvis du bruger dobbelt-plinger (") istedet for enkelt-plinger(') - så slipper du for at lave backslashes i din tekst... f.eks:


print ("We'd have {0} beans, {1} jars, and {2} crates.".format(*secret_formula(start_point)))


Bare et lille tip :)

Derudover er jeg ikke sikker på at jeg synes det er en udbredt god idé at returnere flere værdier af gangen. Fordi du returnerer flere værdier af gangen får du en pokkers masse paranteser i dit print-statement - som gør det svært at læse koden rigtigt. Derfor kan man gøre det, at man gemmer alle værdierne i en liste (list) - og så kalder du metoden/funktionen således (tror jeg nok, er lidt rusten i python):


stores = secret_formula(start_point)


For så kan du lave en print-statement som ser således ud:


stores = secret_formula(start_point)

print ("We'd have {0} beans, {1} jars, and {2} crates.".format(stores[0], stores[1], stores[2]))


Men, som sagt, du må ikke hænge mig op på dette - da jeg normaltvis ikke er Python-koder :) Men det er nu et dejligt sprog.


  • Log ind eller opret dig for at tilføje kommentarer

# 2

14 år 3 måneder siden

Permalink

Indsendt af slettet16019 den 1. december 2011 kl. 08:39

Permalink

Tak for dine tips, det er

Tak for dine tips, det er bestemt noget jeg vil tage med mig :)
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

KDE Plasma 6.6 skrivebordsmiljø udgivet 0
youtube-tui: Nyd YouTube fra terminalen som en professionel 0
GRUB 2.14 introducerer understøttelse af EROFS, forbedringer til Btrfs og LVM 0
KDE Plasma 6.6 tilføjer en funktion, som brugerne har spurgt efter i evigheder 0
Linux i København 12.01.2026: Open source i det offentlige 0

Seneste aktivitet

BigLinux 5
Det engang så elskede PCLinuxOS er tilbage - og det er stadig en fantastisk Windows erstatning 1
rsync og filsystem 6
Mousam er en detaljeret desktop vejrapp til Linux 1
Hjælp til Handbrake - ingen dk-undertekster 1
luckyBackup 2
GIMP 30
Pinegrow på Debian 13 ? 4
Openmediavault 1
E-mail blues 9
Driver til min scanner? 5
Printer Epson ET-2865 problem 16
Sudo 7
Thunderbird filvedligeholdelse 2
Debian 13.3.0 8
Linux Mint 22.3 - hvornår opdatere? 10
Canon-printer: Jeg savner "Ink-Toner Level"-meddelelse 10
billede af nuværende installation 2
mapper 4
LinuxIn live 9

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !