• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Indekosowanie

Object Storage Arubacloud
0 głosów
168 wizyt
pytanie zadane 15 lutego 2016 w Python przez Ravus Początkujący (470 p.)

Witam was drodzy koledzy Programiści.

Napisałem program edukacyjny który mam zamiar wykorzystać w przyszłości. Ale podczas kompilowania wyskakuje taki oto soczysty błąd.  

"Traceback (most recent call last):
  File "C:\Users\Mutu\Desktop\Python Luty 2016\Indeksowanie.py", line 8, in <module>
    print(word,"[",number,"]","  ",word[number])
TypeError: list indices must be integers or slices, not str"

Chcę aby mój program wypisał litery przy wprowadzonym numerz indeksu. Tutaj łapcie kod.

import random
print("Ten program pozwoli ci zrozumić zasadę indeksowania wprowadzając słowo ,a następnie cyfrę poznasz litere odpowiadająca temu że  numerowi w indexie ") 
word = input("Wprowadz słowo: ")
number = input("Wprowadz cyfrę: ")
input("W cele kontynuacji naciśnij enter")
for i in range(1):
    print(word,"[",number,"]","  ",word[number])

input("^.^")

 

1 odpowiedź

+1 głos
odpowiedź 15 lutego 2016 przez Tomatosoup Pasjonat (18,530 p.)

Twój number to string, nie możesz odwołać się do znaku word[] przez string bez uprzedniego rzutowania na int, u ciebie teraz to wygląda na przykład tak: word["1"].

number = int(input("Wprowadz slowo: ")

Zrób tak i powinno działać.W traceback komunikat TypeError dość jasno mówi dlaczego twój program się wysypuje.

Do tego po wprowadzeniu number na twoim miejscu sprawdziłbym, czy przypadkiem index nie wykracza poza długość stringa word

komentarz 15 lutego 2016 przez Ravus Początkujący (470 p.)

Dziękuje za pomoc :D 

A co do sprawdzenia czy zmieniłbyś coś w moim aktualnym ? 

import random
print("Ten program pozwoli ci zrozumić zasadę indeksowania wprowadzając słowo ,a następnie cyfrę poznasz litere odpowiadająca temu że  numerowi w indexie ") 
word = input("Wprowadz słowo: ")
number = int(input("Wprowadz cyfrę: "))
length = len(word) #długość wprowadzonego łańcucha
length -= 1
input("W cele kontynuacji naciśnij enter")
if number > length:
    number = int(input("Wprowadz ponownie cyfrę: "))
for i in range(1):
    print(word,"[",number,"]","  ",word[number])

input("^.^")

 

komentarz 16 lutego 2016 przez Tomatosoup Pasjonat (18,530 p.)
import random
print("""Ten program pozwoli ci zrozumić zasadę indeksowania
		wprowadzając słowo, a następnie cyfrę poznasz litere
		odpowiadająca temu że  numerowi w indexie""")
		#teraz print jest bardziej czytelny
word = input("Wprowadz słowo: ")
number = int(input("Wprowadz cyfrę: "))
#length = len(word) moim zdaniem niepotrzebne wprowadzenie zmiennej
#length -= 1
input("W cele kontynuacji naciśnij enter")
if number >= len(word):
	number = int(input("Wprowadz ponownie cyfrę: "))
	#przydałby się komunikat dlaczego mamy wprowadzić ponownie
print(word,"[",number,"]","  ",word[number]) #ta pętla jest niepotrzebna
print("^.^") #jeżeli input nie czeka na żaden znak to po prostu print

 

Nie znaleziono podobnych pytań

92,626 zapytań

141,486 odpowiedzi

319,844 komentarzy

62,009 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...