14 svar
94 visningar
Luffy är nöjd med hjälpen
Luffy Online 269
Postad: 11 nov 22:59 Redigerad: 12 nov 00:47

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 :)

Laguna Online 22263
Postad: 12 nov 09:55

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?

Luffy Online 269
Postad: 12 nov 16:50
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)
Laguna Online 22263
Postad: 12 nov 18:00

Nej, läs in från användaren. Du ska få in texten i programmet på något vis.

Luffy Online 269
Postad: 12 nov 19:41
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?

Laguna Online 22263
Postad: 12 nov 19:56

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. :)

Luffy Online 269
Postad: 12 nov 20:11 Redigerad: 12 nov 20:12

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.

Laguna Online 22263
Postad: 12 nov 20:18

Handlade septemberkursen om python, eller om kommandoradsprogram i Linux i allmänhet?

Luffy Online 269
Postad: 12 nov 20:22
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.

Luffy Online 269
Postad: 12 nov 20:24
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.

Luffy Online 269
Postad: 13 nov 16:08
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.

Svara Avbryt
Close