Bygga ihop pythonprogram med kommandoradsgränssnitt?
Uppgiften lyder som följande:
Programmet som jag byggt ihop med alla språk är följande:
vokaler = 'aouåeiyäöAOUÅEIYÄÖ'
konsonanter = 'bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ'
def visksprak(mening):
for i in vokaler:
mening=mening.replace(i,"")
return mening
def rovarsprak(mening):
for i in konsonanter:
mening=mening.replace(i,i+"o"+i)
return mening
def bebissprak(mening):
mening=mening.split()
for i in mening:
for j in range(len(i)):
if i[j] in vokaler:
ny = i[:j+1]
break
print (ny*3, end=" ")
def allsprak(mening):
mening=mening.split()
for i in mening:
for j in range(len(i)):
if i[j] in vokaler:
ny=i[j:] + i[:j] + "all"
break
print(ny, end=" ")
def fikonsprak(mening):
mening=mening.split()
for i in mening:
for j in range(len(i)):
if i[j] in vokaler:
ny="fi" + i[j+1:] + i[:j+1] + "kon"
break
print(ny, end=" ")
Jag minns att i början av September gick jag en separat datorintro kurs där man smått blev introducerad till CLI men det har man glömt och det är förmodligen inte tillräckligt för att klara av detta. Jag har inte heller minne av att vår lärare har gått igenom detta under någon av föreläsningarna, och är därför antagligen helt lost.
Jag förstår inte alls vart jag ska börja eller vad det är man ska göra, har försökt läsa på lite och förstå, men kommer ingen vart. Skulle uppskatta lite hjälp :)
Börja enkelt, så kan du bygga ut det sedan. Kan du skriva ett program som bara läser in en textrad och sedan skriver ut hur lång den är?
Laguna skrev:Börja enkelt, så kan du bygga ut det sedan. Kan du skriva ett program som bara läser in en textrad och sedan skriver ut hur lång den är?
Alltså typ följande?
def langd(mening):
mening=len(mening)
print(mening)
Nej, läs in från användaren. Du ska få in texten i programmet på något vis.
Laguna skrev:Nej, läs in från användaren. Du ska få in texten i programmet på något vis.
Asså jag fattar verkligen 0, finns det någonstans jag kan läsa om det här?
Pythons egen dokumentation är bra.
Du kan läsa in en rad med funktionen input:
s = input()
Du kan också loopa över allt som kommer in:
for s in sys.stdin:
...
Då måste du importera modulen sys först.
Ett annat alternativ är:
for arg in sys.argv:
...
Se om du kan ta fram skillnaden mellan de två metoderna. :)
Jag uppskattar att ni försöker hjälpa men det är verkligen något som inte klickar till i mitt huvud. Vad innebär det att jag ska få in texten i programmet? Vad innebär det att man ska loopa över allt som kommer in? Vad är sys.stdin och sys.argv? Har så mycket frågetecken i mitt huvud.
Hela det här känns så random jämfört med allt annat vi gjort i kursen D:
Du ska ta emot input i terminalen istället för konsolen i din IDE.
Handlade septemberkursen om python, eller om kommandoradsprogram i Linux i allmänhet?
Laguna skrev:Handlade septemberkursen om python, eller om kommandoradsprogram i Linux i allmänhet?
Detta är kursen https://www.kth.se/student/kurser/kurs/DD1301 som handlade allmänt om KTHs datorsystem, Git och Latex.
Dracaena skrev:Du ska ta emot input i terminalen istället för konsolen i din IDE.
Hmm, jag kör all min kod genom terminalen
och source:
import sys
for arg in sys.argv:
print(arg)
For att göra det ännu tydligare, så har jag gjort ett litet annat demo som kanske ger dig lite mer förståelse om hur man gör. Notera dock att detta är windows och inte linux, så här kan man inte använda cat och liknande.
import sys
if len(sys.argv) == 2:
print("txt specified: " + sys.argv[1])
f = open("demo.txt", "r")
for item in f:
print(item)
Nu är det bara kalla på rätt funktion i koden för att omformatera koden.
Dracaena skrev:For att göra det ännu tydligare, så har jag gjort ett litet annat demo som kanske ger dig lite mer förståelse om hur man gör. Notera dock att detta är windows och inte linux, så här kan man inte använda cat och liknande.
import sys if len(sys.argv) == 2: print("txt specified: " + sys.argv[1]) f = open("demo.txt", "r") for item in f: print(item)
Nu är det bara kalla på rätt funktion i koden för att omformatera koden.
Jag uppskattar all hjälp! Jag känner mig däremot fortfarande helt lost och kommer verkligen inte vidare med någonting, får kolla med någon kursare som har gjort labben i veckan.