Vinnaren i pepparkakshustävlingen!
2018-10-01, 16:51
  #1549
Medlem
Citat:
Ursprungligen postat av LivingOnlyOnce
Kan någon visa hur man gör en enkel input-kontroll så att endast bokstäver accepteras som svar?

För siffror är det enkelt att få fram.

Kod:
while True:
    try:
        age=float(input("Hur gammal är du? "))
        break
    except:
        print("Endast siffor!")
if age >= 18:
    print("Du är tillräckligt gammal för att rösta!")
else:
  print("Du kommer kunna rösta om " + str(18-age) + " år.")

Hur kan man göra samma kontroll för bokstäver om användaren ska ange sitt namn? Tacksam för hjälp.

https://www.tutorialspoint.com/pytho...ng_isalpha.htm

Kan va värt att ta bort mellanslag o sådant innan kollen då dessa inte är bokstäver.
Citera
2018-10-01, 19:19
  #1550
Medlem
LivingOnlyOnces avatar
Citat:
Ursprungligen postat av Gottisborgen
https://www.tutorialspoint.com/pytho...ng_isalpha.htm

Kan va värt att ta bort mellanslag o sådant innan kollen då dessa inte är bokstäver.

Hur använder man metoden?
Citera
2018-10-01, 19:20
  #1551
Moderator
vhes avatar
Citat:
Ursprungligen postat av LivingOnlyOnce
Hur kan man göra samma kontroll för bokstäver om användaren ska ange sitt namn? Tacksam för hjälp.

Namn kan innehålla rätt mycket, så det kan bli bökigt. I rent lek-syfte kan du ju pröva med isalpha(), men det om du någonsin skriver ett "riktigt" program så kan du inte validera så mycket. Mellanslag, bindestreck, apostrofer, punkter, kolon, bokstäver från dussintals olika alfabeten, kinesiska tecken (och liknande), m.m. kan förekomma i ett namn.
Citera
2018-10-01, 19:21
  #1552
Medlem
LivingOnlyOnces avatar
Citat:
Ursprungligen postat av vhe
Namn kan innehålla rätt mycket, så det kan bli bökigt. I rent lek-syfte kan du ju pröva med isalpha(), men det om du någonsin skriver ett "riktigt" program så kan du inte validera så mycket. Mellanslag, bindestreck, apostrofer, punkter, kolon, bokstäver från dussintals olika alfabeten, kinesiska tecken (och liknande), m.m. kan förekomma i ett namn.

Jag vill bara ha en enkel input-kontroll för vanliga alfabetet a-z.
Citera
2018-10-02, 16:56
  #1553
Medlem
Citat:
Ursprungligen postat av LivingOnlyOnce
Jag vill bara ha en enkel input-kontroll för vanliga alfabetet a-z.

Kod:
if "pannkaka".isalpha:
  print "bara alfabetiska tecken" # detta kommer att printas
if "pann kaka".isalpha:
  print "bara alfabetiska tecken" # Detta kommer ej att printas pga mellanslag
if "pann kaka".replace(' ', '').isalpha:
  print "bara alfabetiska tecken" # Detta kommer att printas då vi tog bort mellanslaget
if "tre3".isalpha:
  print "bara alfabetiska tecken" # Detta kommer ej att printas pga siffra
Citera
2018-10-13, 22:08
  #1554
Medlem
Shawn92s avatar
Hallå!

Gjorde nyligen ett pythonprov som jag misslyckades med då jag inte fick det att fungera. Felkoden jag fick var att det inte gick att printa ut något som är av typmetoden int och string samtidigt, vilket jag köper. Det jag misslyckades dock med att förstå var exakt VAR i min kod som jag inte gjorde den konverteringen. Jag tänkte att i funktionen conversion så tar jag parametern number, som vi sedan använder i sorting, och konverterar den först till en string. Sedan anropar jag funktionen i den andra funktionen, sorting, för att göra själva lösningen. Min "approach" var att jag gör om det till en sträng från int, för att sedan använda slice och tilldela variabeln last_digit det sista indexet i denna variabel, för att sedan addera det till vår "nya siffra" (new_number). Det var här det gick snett...

Jag gjorde även en testfunktion (test_sorting) och min tolkning av uppgift b (four_times_bigger) så inte ni blir förvirrade av den kodbiten.

Bifogar här nedan själva provfrågan (1a) och min misslyckade lösning:

https://imgur.com/a/thoScOc

Tacksam för all form av hjälp jag kan få med denna uppgift!

/Shawn
Citera
2018-10-13, 22:29
  #1555
Moderator
Protons avatar
Citat:
Ursprungligen postat av Shawn92
Hallå!

Gjorde nyligen ett pythonprov som jag misslyckades med då jag inte fick det att fungera. Felkoden jag fick var att det inte gick att printa ut något som är av typmetoden int och string samtidigt, vilket jag köper. Det jag misslyckades dock med att förstå var exakt VAR i min kod som jag inte gjorde den konverteringen. Jag tänkte att i funktionen conversion så tar jag parametern number, som vi sedan använder i sorting, och konverterar den först till en string. Sedan anropar jag funktionen i den andra funktionen, sorting, för att göra själva lösningen. Min "approach" var att jag gör om det till en sträng från int, för att sedan använda slice och tilldela variabeln last_digit det sista indexet i denna variabel, för att sedan addera det till vår "nya siffra" (new_number). Det var här det gick snett...

Jag gjorde även en testfunktion (test_sorting) och min tolkning av uppgift b (four_times_bigger) så inte ni blir förvirrade av den kodbiten.

Bifogar här nedan själva provfrågan (1a) och min misslyckade lösning:

https://imgur.com/a/thoScOc

Tacksam för all form av hjälp jag kan få med denna uppgift!

/Shawn
Ska väl börja med att säga att jag typ inte kan python, men here goes....

Jag tycker din metod "sorting" ser bra mysko ut, varför skriver den ut något? Meningen med den är väl att du ska skicka in ett tal och i andra ändan ska den sedan skita ur sig talet fast i omvänd ordning? Med det sagt borde den antingen vara rekursiv, eller innehålla nån form av loop, men jag ser varken det ena eller andra i den?

I allra enklaste utförande borde ju algoritmen i den vara nåt sånt här:

Deklarera upp en variabel som får hålla det omvända talet
Ta indatat och gör om till en sträng
Loopa igenom denna sträng baklänges
För varje steg, lägg till tecknet på aktuellt index i den nyligen deklarerade variabeln
När man kommit till 0 borde alltihop vara vänt, gör om detta till en int och skicka tillbaka denna från metoden.

Ser nu på SO att det finns fler sätt att flå katten

Funkar detta som substitut?
Kod:
def reverse(number)
     myString = (str)number
     myNewString = myString[::-1]
     return (int)myNewString

Som sagt, kan inte python utan detta var en combo av din egen kod plus https://stackoverflow.com/questions/...ring-in-python som fick ligga som förlaga.
Citera
2018-10-14, 12:49
  #1556
Medlem
Citat:
Ursprungligen postat av Shawn92
Hallå!

Gjorde nyligen ett pythonprov som jag misslyckades med då jag inte fick det att fungera. Felkoden jag fick var att det inte gick att printa ut något som är av typmetoden int och string samtidigt, vilket jag köper. Det jag misslyckades dock med att förstå var exakt VAR i min kod som jag inte gjorde den konverteringen. Jag tänkte att i funktionen conversion så tar jag parametern number, som vi sedan använder i sorting, och konverterar den först till en string. Sedan anropar jag funktionen i den andra funktionen, sorting, för att göra själva lösningen. Min "approach" var att jag gör om det till en sträng från int, för att sedan använda slice och tilldela variabeln last_digit det sista indexet i denna variabel, för att sedan addera det till vår "nya siffra" (new_number). Det var här det gick snett...

Jag gjorde även en testfunktion (test_sorting) och min tolkning av uppgift b (four_times_bigger) så inte ni blir förvirrade av den kodbiten.

Bifogar här nedan själva provfrågan (1a) och min misslyckade lösning:

https://imgur.com/a/thoScOc

Tacksam för all form av hjälp jag kan få med denna uppgift!

/Shawn

Jag delar inte Protons tolkning av frågan, tror jag. Om jag tolkar frågan rätt så vill du inte reversera hela talet, utan bara placera den sista siffran först. Du bör alltså skriva en funktion som:

1. Tar in ett tal som input.
2. Konverterar talet till en sträng med str().
3. Plockar ut den sista siffran i strängen med [-1].
4. Plockar ut alla siffror förutom den sista med [:-1].
5. Slår ihop strängarna från punkt 3 och 4.
6. Konverterar strängen i punkt 5 till ett heltal med int().
7. Returnerar talet från punkt 6.

Så här kan du lösa det med en rad kod:

Kod:
def sort( number ):
	return int( str( number )[-1] + str( number )[:-1] )

För att testa:

Kod:
def test_sorting():
	numbers = [1, 10, 101, 100000, 994, 5363, 345, 12345678, 120]

	for number in numbers:
		print( 'Testar för ' + str( number ) + ': ' + str( sort( number ) ) )


test_sorting()

Output:

EDIT:

Koden som strular till det för dig hittar du troligen på rad 3 i sorting-funktionen. Där lägger du ihop sista siffran (str) med längden på talet - 1 (int). Vad du försöker göra med längden vet jag inte.
__________________
Senast redigerad av Nich 2018-10-14 kl. 12:54.
Citera
2018-10-14, 13:54
  #1557
Moderator
Protons avatar
Citat:
Ursprungligen postat av Nich
Jag delar inte Protons tolkning av frågan, tror jag. Om jag tolkar frågan rätt så vill du inte reversera hela talet, utan bara placera den sista siffran först. Du bör alltså skriva en funktion som:

1. Tar in ett tal som input.
2. Konverterar talet till en sträng med str().
3. Plockar ut den sista siffran i strängen med [-1].
4. Plockar ut alla siffror förutom den sista med [:-1].
5. Slår ihop strängarna från punkt 3 och 4.
6. Konverterar strängen i punkt 5 till ett heltal med int().
7. Returnerar talet från punkt 6.

Så här kan du lösa det med en rad kod:

Kod:
def sort( number ):
	return int( str( number )[-1] + str( number )[:-1] )

För att testa:

Kod:
def test_sorting():
	numbers = [1, 10, 101, 100000, 994, 5363, 345, 12345678, 120]

	for number in numbers:
		print( 'Testar för ' + str( number ) + ': ' + str( sort( number ) ) )


test_sorting()

Output:

EDIT:

Koden som strular till det för dig hittar du troligen på rad 3 i sorting-funktionen. Där lägger du ihop sista siffran (str) med längden på talet - 1 (int). Vad du försöker göra med längden vet jag inte.
Ser nu efter en genomläsning igen att din tolkning av vad som ska göras troligen är den mer korrekta än vad jag uppfattade det som.

I stand corrected
Citera
2018-11-05, 00:45
  #1558
Medlem
Dr.Suicidals avatar
Hej! Håller på med ett skolprojekt men stött på problem. Har fått en färdig kod som man ska använda. Problemet är att jag inte kan programmera, vilket inte heller är målet med kursen. Jag har följt instruktionerna och installerat pytorch och anconda. Men när jag kör koden genom VS code får jag endast en massa felmeddelanden. Bland annat något i stil med "Unable to import 'torch'".

Här är en BILD på felmeddelandena.

Koden är det inget fel på eftersom vi fått den från skolan. Vore väldigt tacksam om någon har någon idé om vad problemet kan vara!
Citera
2018-11-05, 19:22
  #1559
Medlem
splitfaces avatar
Citat:
Ursprungligen postat av Dr.Suicidal
Hej! Håller på med ett skolprojekt men stött på problem. Har fått en färdig kod som man ska använda. Problemet är att jag inte kan programmera, vilket inte heller är målet med kursen. Jag har följt instruktionerna och installerat pytorch och anconda. Men när jag kör koden genom VS code får jag endast en massa felmeddelanden. Bland annat något i stil med "Unable to import 'torch'".

Här är en BILD på felmeddelandena.

Koden är det inget fel på eftersom vi fått den från skolan. Vore väldigt tacksam om någon har någon idé om vad problemet kan vara!
Hur installerade du pytorch?
Citera
2018-11-05, 21:28
  #1560
Medlem
Dr.Suicidals avatar
Citat:
Ursprungligen postat av splitface
Hur installerade du pytorch?

Valde DESSA alternativ. Skrev sedan in kommandona i Anaconda prompt
__________________
Senast redigerad av Dr.Suicidal 2018-11-05 kl. 21:42.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback