Pythonban hogyan kell menteni úgy, hogy ne a jegyzettömböt nyissa meg?
File -> Save as -> kimentem az asztalra valami.py néven és ha rámegyek a jegyzettömböt nyitja meg
Python 3.5.1-em van
Na akkor:
csillag = *
a = 1
while a < 7:
a = a + 1
csillag = csillag + 1
print csillag
Hiba:
Traceback (most recent call last):
File "<pyshell$36>", line 2, in <module>
csillag = csillag + 1
TypeError: cannot concate 'str' and 'int' objects
Ha így írom: csillag = csillag + int(1)
Ugyan azt a hibát kapom
Ha csillag = csillag + str(1) akkor:
*1
*11
*111
...stb
Tehát:
csil1 = "*"
csil2 = "*"
a = 1
while a < 8:
csil1 = csil1+csil2
a = a + 1
print csil1
Fel kell cserélni a printet
while a < 8:
print cs
a = a +1
cs = cs+ cs1
és SIKERÜLT! :D
de hogyan kéne ezt egyszerűsíteni?
Igaz, ami igaz, túl sok nem várható, de például lehet a két változó használata helyett konstanssal növelgetni a stringet (egyáltalán nem biztos, hogy ennek gyakorlati haszna is van):
a = 0
csillag = ""
while a < 7:
csillag = csillag + "*"
print(csillag)
a = a + 1
De így is meg lehet oldani (még mindig a while berkein belül):
a = 0
while a < 7:
a = a + 1
print("*" * a)
For-ral meg mondjuk így (akár egy sorba is írható, csak kár lenne hülyeségeket megszoknod):
for csill in range(1,8):
print("*" * csill)
Ja, bocs, most látom, hogy én python3-ban írtam.
Sebaj, legalább alkalmad van gyakorolni a kettesre való átírást...
Egy darabig megint eltűnök néhány órára.
Viszont a for -nál még nem járok :)
Na de már csak 1 gyakorlat van (ez a csillagos rávilágított a másik kettőre is ami úgyszint lehetetlennek tűnt).
Ez az átváltós. Valami tipp? :D
Jaj, ne hülyéskedj már. Ezen a szinten csak annyi a különbség, hogy a python3-ban zárójelek közé teszed a print paraméterét, a python2-ben meg nem -- de ezt már eleve tudod, hiszen éppen fentebb írtál működőképes python2 print utasításokat. Itt vannak az eddigiek kettesben, megfejelve egy újabb while-ciklusos megoldással:
a = 0
csillag = ""
while a < 7:
a = a + 1
csillag = csillag + "*"
print csillag
a = 0
while a < 7:
a = a + 1
print "*" * a
for a in range(1,8): print "*" * a
csillag = ""
while csillag < "*******": # ez 7 csillag (ha a GyK esetleg rosszul irja ki)
csillag = csillag + "*"
print csillag
Többek között ezért kell pontosan értened, hogy mi mit csinál. Ha tudod, hogy a print hogyan működik a kettesben, semmi fennakadást nem okozhat egy ilyen apró eltérés. De gondolhatsz arra is, hogy a könyv szedője sem Atyaúristen, adott esetben akár ő is hibázhat, ekkor neked kell tudnod, hogy mi kellett volna oda. Nem varázsigéket írsz be, hanem pontosan meghatározott formájú és jelentésű értelmes utasításokat.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!