14 svar
151 visningar
Luffy behöver inte mer hjälp
Luffy 449 – Fd. Medlem
Postad: 11 nov 2022 22:59 Redigerad: 12 nov 2022 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 30484
Postad: 12 nov 2022 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 449 – Fd. Medlem
Postad: 12 nov 2022 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 30484
Postad: 12 nov 2022 18:00

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

Luffy 449 – Fd. Medlem
Postad: 12 nov 2022 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 30484
Postad: 12 nov 2022 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.

Fermatrix 7841 – Fd. Medlem
Postad: 12 nov 2022 19:58

Ett annat alternativ är:

for arg in sys.argv:
	...

Se om du kan ta fram skillnaden mellan de två metoderna. :)

Luffy 449 – Fd. Medlem
Postad: 12 nov 2022 20:11 Redigerad: 12 nov 2022 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:

Fermatrix 7841 – Fd. Medlem
Postad: 12 nov 2022 20:14

Du ska ta emot input i terminalen istället för konsolen i din IDE.

Laguna Online 30484
Postad: 12 nov 2022 20:18

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

Luffy 449 – Fd. Medlem
Postad: 12 nov 2022 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 449 – Fd. Medlem
Postad: 12 nov 2022 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

Fermatrix 7841 – Fd. Medlem
Postad: 12 nov 2022 20:27

och source:

import sys

for arg in sys.argv:
    print(arg)
Fermatrix 7841 – Fd. Medlem
Postad: 13 nov 2022 12:00

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 449 – Fd. Medlem
Postad: 13 nov 2022 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
Close