Водич за Пајтон 2.6/Решења

Извор: Викикњиге
Пређи на навигацију Пређи на претрагу

Исказ ако[уреди]

Као и увек верујем да би свако поглавље требало да почне са загревањем вежбама куцања, па је овде кратак програм за израчунавање апсолутне вредности броја:

н = input("Број? ")
if н < 0:
   print "Апсолутна вредност", н, "је", -н
else:
   print "Апсолутна вредност ", н, "је", н

Овде је излаз два пута који воде овај програм:

Број? -34
Апсолутна вредност -34 is 34
Број? 1
Апсолутна вредност 1 is 1

Шта рачунар ради када види овај део кода? Прво пита корисника за број са изјавом "н = input("Број? ")". Затим чита линију "if н < 0:". Ако је н мање од нуле Пајтон покреће линију "print "Апсолутна вредност", н, "је", -н". У супротном покреће линију "print "Апсолутна вредност", н, "је", н".

Формалније Пајтон гледа да ли је израз н < 0 таћан или нетачан. if изјава је након тога увучена блоком наредби које се покрећу када је израз тачан. Избором после if наредбе је else наредба и други увучени блок наредби. Овај други блок наредби је покреће ако је нетачно.

Овде су бројеви различитих тестова које изрази могу имати. Овде је табела свих њих:

оператор функција
< мање од
<= мање или једнако од
> веће од
>= веће или једнако од
== једнако
!= није једнако
<> други начин када није једнако(старо, није препоручено)

Још једна карактеристика if команде је elif наредба. Она се залаже за друго ако и значи ако је оригинална if наредба нетачна али elif део је тачан, онда уради elif део. А ако ниједна if или elif наредба није тачна, онда уради оно што је у else блоку. Овде је пример:

a = 0
while a < 10:
    a = a + 1
    if a > 5:
        print a, ">", 5
    elif a <= 7:
        print a, "<=", 7
    else:
        print "Ниједан тест није истина"

и излаз:

1 <= 7
2 <= 7
3 <= 7
4 <= 7
5 <= 7
6 > 5
7 > 5
8 > 5
9 > 5
10 > 5

Приметите сад да је elif a <= 7 једино тестиран када if наредба није истинита. Може бити више од једне elif наредбе, дозвољено је да се ради више тестова у једној if наредби.

Примери[уреди]

# Овај програм демонстрира употребу == оператора
# коришћењем бројева
print 5 == 6
# коришћење променљивих
x = 5
y = 8
print x == y

И излаз

False
False

Високо_ниско.py

# Игра игре погађања вишег или нижег 

# Ово би требало да заправо бити нешто што је полу случајно као да су
# последње цифре тог времена, или нешто друго, али да ћете морати да
# чекате до следећег поглавља.  (Бонус, модификујте их да буду случајни
# после поглавља о Модулима)
modify it to be random 
број = 78
погодак = 0

while погодак != број: 
    погодак = input("Погоди број: ")
    if погодак > број:
        print "Превише високо"
    elif погодак < број:
        print "Превише ниско"

print "Добро је"

Пример:

Погоди број: 100
Превише високо
Погоди број: 50
Превише ниско
Погоди број: 75
Превише ниско
Погоди број: 87
Превише високо
Погоди број: 81
Превише високо
Погоди број: 78
Добро је

паран.py

# Тражи број.
# Штампа ако је паран или непаран

број = input("Кажи ми број: ")
if број % 2 == 0:
    print број, "је паран."
elif број % 2 == 1:
    print број, "је непаран."
else:
    print број, "чудан је."

Примери:

Кажи ми број: 3
је непаран.
Кажи ми број: 2
2 је паран.
Кажи ми број: 3.14159
3.14159 је чудан.

средњавредност1.py

# тражи бројеве док се нула не укуца.
# Штампа средњу вредност низа.

бројање = 0
збир = 0.0
број = 1 # поставите нешто што неће одмах изаћи из while петље.

print "Притисните 0 да изађете из пeтље"

while број != 0:
    број = input("Унесите број: ")
    if број != 0:
        бројање = бројање + 1
        збир = збир + број

print "Средња вредност је:", збир / бројање

Примери:

Притисните 0 да изађете из пeтље
Унесите број: 3
Унесите број: 5
Унесите број: 0
Средња вредност је: 4.0
Притисните 0 да изађете из пeтље
Унесите број: 1
Унесите број: 4
Унесите број: 3
Унесите број: 0
Средња вредност је: 2.66666666667

средњавредност2.py

# тражи бројеве док се сабрани бројеви поново не унесу.
# Штампа средњу вредност.

збир = 0.0

print "Овај програм ће узети неколико бројева и наћи њихов просек"
бројање = input("Од колико бројева бисте желели да нађете средњу вредност: ")
одговарајуће_бројање = 0

while одговарајуће_бројање < бројање:
    одговарајуће_бројање = одговарајуће_бројање + 1
    print "Број", одговарајуће_бројање
    број = input("Унеси број: ")
    збир = збир + број

print "Средња вредност је:", збир / бројање

Примери:

Овај програм ће узети неколико бројева и наћи њихов просек
Од колико бројева бисте желели да нађете средњу вредност: 2
Број 1
Унеси број: 3
Број 2
Унеси број: 5
Средња вредност је: 4.0
Овај програм ће узети неколико бројева и наћи њихов просек
Од колико бројева бисте желели да нађете средњу вредност: 3
Број 1
Унеси број: 1
Број 2
Унеси број: 4
Број 3
Унеси број: 3
Средња вредност је: 2.66666666667

Вежбања[уреди]

  1. Преправи виши или нижи програм из овог дела да броји колико пута је корисник укуцао погрешан број. Ако је то више од три, штампај "То мора да је компликовано." Запамтите да програм не мора да престане да пита за број пре него што је погођен, само мора ово да штампа након што је број погођен.
  2. Написати програм који тражи два броја. Ако је збир бројева већи од 100, штампај "То је велики број."
  3. Написати програм који тражи име корисника, ако укуца своје име штампати "То је лепо име", ако укуцају "Џон Клис" или "Мишел Палин", реците им шта мислите о њима ;), у супротном реците им "Имате лепо име."
Решења

Преправи виши или нижи програм из овог дела да броји колико пута је корисник укуцао погрешан број. Ако је то више од три, штампај "То мора да је компликовано."

број = 42
погодак = 0
бројање = 0
while погодак != број:
    бројање = бројање + 1
    погодак = input('Погоди број: ')
    if погодак > број:
        print 'Превише високо'
    elif погодак < број:
        print 'Превише ниско'
    else:
        print 'Добро је'
        break
    if бројање > 2:
        print 'То мора да је компликовано.'
        break

Написати програм који тражи два броја. Ако је збир бројева већи од 100, штампај "То је велики број."

број1= input('Први број: ')
број2 = input('Други број: ')
if број1 + број2 > 100:
    print 'То је велики број.'

Написати програм који тражи име корисника, ако укуца своје име штампати "То је лепо име", ако укуцају "Џон Клис" или "Мишел Палин", реците им шта мислите о њима ;), у супротном реците им "Имате лепо име."

име = raw_input('Ваше име: ')
if име == 'Ада':
    print 'То је лепо име.'
elif име == 'Џон Клис' или име == 'Мишел Палин':
    print '... неки смешан текст.'
else:
    print 'Имате лепо име.'

Шаблон:Водич за Пајтон 2.6/Navigation