Omvandlar varje element i vektorn från datatyp str till int
Så här ser uppgiften ut:
Du skriva en program som tar en vektor v och omvandlar varje element i vektorn från datatyp str till int och sparar det i vektorn u. Programmet ska använda en for-loop. Ifall programmet inte lyckas ska det sätta elementet till -100. För testet måste du använda en try-sats.
Om t.ex.
v=['a','0.1','3+0.9j','7','True']
så skall den nya vektorn bli
u=[-100, -100, -100, 7, -100].
Din uppgift är att, i rutan nedan, fylla i de kommandon däremellan som ger önskat resultat (delar av koden är förifylld som hjälp på traven).
Regler du måste följa:
- De första raderna ( import numpy as np och v=np.genfromtxt('data.txt') ), samt den sista ( print('Den nya vektorn är [' + str(u) + ']') ) är redan ifyllda och kan inte ändras (och inte upprepas i kodrutan).
- Indentera inte raderna mer än nödvändigt (och tillåtet).
- Variablerna är skiftlägeskänsliga, så använd inte stor bokstav när det ska vara liten (eller tvärtom).
Det som står i rutan är :
import numpy as np
v=np.genfromtxt('data.txt')
...
( print('Den nya vektorn är [' + str(u) + ']') )
Skulle jag kunna få hjälp med denna uppgift. Jag vet ej hur man kan göra en for-loop i detta fall med tanke på att jag inte vet antalet element i vektorn.
Du kan antingen använda
for element in l:
# gör nåt med element
eller
for i in range(len(l)-1):
# gör nåt med l[i]
Även trots det är ett helt legitimt sätt att skriva kod så anser man C style loopar som icke pythoniskt. Bättre är att använda enumerate.
Dracaena skrev:Även trots det är ett helt legitimt sätt att skriva kod så anser man C style loopar som icke pythoniskt. Bättre är att använda enumerate.
Tacksam om du kan du motivera "man anser".
Du kan hitta väldigt mycket om du söker på det.
https://peps.python.org/pep-0279/#rationale
Det finns klart många andra källor man kan läsa på om man så vill.
https://stackoverflow.com/questions/522563/accessing-the-index-in-for-loops