Początki w pythonie, kilka pytań i proste (przynajmniej dla Was) zadania.

0

Witam, dwie godziny temu zacząłem przygodę z pythonem, mam kilka pytań, na które odpowiedzi pewnie będą dla Was oczywiste.
Tak więc uczę się z http://astronomia.zagan.pl/pliki/python/Podrecznik_Pythona.pdf
Już od razu miałem kilka problemów.
Otóż w podręczniku polecana wersja do nauki to 2.x, ja jednak postanowiłem od razu zabrać się za wersję najnowszą (3.x). Zauważyłem, że przykładowo w podręczniku jest raw_input (), w najnowszej wersji jednak jest input (). W przypadku print według podręcznika kod powinien wyglądać tak:
print "Siemka"
W najnowszej wersji jednak należy jeszcze dodać nawiasy
print ("Siemka")

  1. Dlaczego wprowadzono takie zmiany w nowszej wersji i czy są jakieś sposoby przekonwertowania kodu z wersji 2.x na wersję 3.x?

Mam także problem z zadaniami:
Używając instrukcji Pythona oblicz resztę z dzielenia 17 przez 7 i zapamiętaj wynik w zmiennej o nazwie Z. Następnie, pojedynczym poleceniem Pythona i bez użycia nawiasów, przemnóż zmienną Z przez Z+3.
Zrobiłem to tak:
'>>>Z=17%7
'>>>Z*(Z+3)
2. Aczkolwiek użyłem nawiasów, których miało nie być. Jak je zastąpić czymś innym? (Chyba, że tu chodziło po prostu o Z*Z+3 ;-;)

Spowoduj pojedynczym poleceniem Pythona, by na ekranie 20-krotnie wyświetliła się wartość wyrażenia 1.2e+3+34.5 każdorazowo rozdzielona średnikiem
3. Jak to zrobić?

Napisz program "pole_tr.py", który obliczy pole trójkąta, pod warunkiem że użytkownik poda wysokość i długość podstawy tego trójkąta. Uwzględnij, że wysokość i długość podstawy mogą być liczbami niecałkowitymi.
Napisałem coś takiego:
x = input ("Podaj długość postawy trójkąta ")
y = input ("Podaj wysokość trójkąta ")
e =('Pole trójkata o długości podstawy',x,'i wysokości',y,'wynosi',int(x)+int(y)/2)
print(e)

Problem wygląda tak, że w Python Shell'u to wygląda tak:
Podaj długość postawy trójkąta 5
Podaj wysokość trójkąta 20
('Pole trójkata o długości podstawy', '5', 'i wysokości', '20', 'wynosi', 15.0)

4. Jak widać powyżej, wszystko działać działa, ale odpowiedź wygląda brzydko- jak usunąć z niej cudzysłowy oraz nawiasy?

Napisz program "powiel.py", który wczyta od użytkownika pewien napis, a następnie wyświetli 30 kopii tego napisu, każda w osobnej linii.
Powiedzmy, że ZAPIS = "test"
Więc muszę zrobić coś w stylu print 30*("\n", ZAPIS) -tylko to akurat nie działa :P
5. Także jak to zrobić? //dobra, poradziłem sobie ale chyba da się to skrócić
ZAPIS="test"
enter="\n"
Printuj=ZAPIS+enter
print (30*Printuj)

Z góry przepraszam, że jest to dosyć chaotycznie napisane.
Możecie mi jeszcze napisać, czy wybrałem dobry materiał do nauki pythona. (http://astronomia.zagan.pl/pliki/python/Podrecznik_Pythona.pdf)

1

Co do braku nawiasów, to z *= z +3

1
  1. Tak, jest narzędzie które przerabia kod wersji 2.x na 3.x -> 2to3
1

Jakbym miał coś polecić do nauki od podstaw, to to: https://interactivepython.org/runestone/static/thinkcspy/index.html

1
  1. To nie jest zadanie dla początkujących. Poniższe rozwiązanie wymaga Pythona 3.
a = [print(eval('1.2e+3+34.5'), end=";") for i in range(30)]
1

Podejrzewam, że takie coś też by wystarczyło do zaliczenia zadania 3

print (str(1.2e+3+34.5) + ';' ) * 20

Napisz program "powiel.py", który wczyta od użytkownika pewien napis, a następnie wyświetli 30 kopii tego napisu, każda w osobnej linii.
Powiedzmy, że ZAPIS = "test"
Więc muszę zrobić coś w stylu print 30*("\n", ZAPIS) -tylko to akurat nie działa :P

Także jak to zrobić? //dobra, poradziłem sobie ale chyba da się to skrócić
ZAPIS="test"
enter="\n"
Printuj=ZAPIS+enter
print (30*Printuj)

Da się:

napis = raw_input('Podaj napis')
print (napis + '\n') * 30

x = input ("Podaj długość postawy trójkąta ")
y = input ("Podaj wysokość trójkąta ")
e =('Pole trójkata o długości podstawy',x,'i wysokości',y,'wynosi',int(x)+int(y)/2)
print(e)

Skąd wziąłeś taki wzór na pole trójkąta?

x = input ("Podaj długość postawy trójkąta ")
y = input ("Podaj wysokość trójkąta ")
print 'Pole trójkata o długości podstawy ' + str(x)+ ' i wysokości ' +str(y)+' wynosi '+ str(x*y/2)

Znaków dodatkowych nie stwierdzono.

1 użytkowników online, w tym zalogowanych: 0, gości: 1