як дадаць лічбы ў python


адказ 1:

Пачнем з пары штучак.

Вы не просіце суму гэтых лічбаў. Вы просіце прыклад зыходнага кода ў Python, які можа вылічыць гэтую суму (і, як мяркуецца, даць вынік як вывад).

Таксама сума ўсіх лікаў ад 1 да 50 бясконцая. Сума ўсіх цэлых лікаў у гэтым дыяпазоне крыху больш зручная.

Цяпер ... пераходзім да пытання: гэта банальнае практыкаванне па праграмаванні. Вам не прыйдзецца размяшчаць паведамленні на публічным форуме, што патэнцыйна затрачвае час і намаганні мільёнаў удзельнікаў форума чымсьці, што вы зможаце зразумець, прыкладваючы толькі некалькі намаганняў. Таму нам разумна задаць пытанне, паставіць пад сумнеў вашыя намеры і нават папракнуць вас у гэтым.

Вы спрабуеце вывучыць Python? Вы калі-небудзь выкарыстоўвалі якую-небудзь мову праграмавання? Вы спрабавалі шукаць:

Google: сума цэлых лікаў у дыяпазоне python

?

Вось толькі просты прыклад: python -c "print (sum (range (1,51)))")

Гэта поўная каманда, бо яна была б уведзена (альбо ўстаўлена) у камандны радок (абалонка Unix, Linux ці MacOS, камандны радок MS-Windows і г.д.).

Ён выклікае функцыю print () (Python 3.x). Калі вы выкарыстоўваеце больш раннія версіі Python, гэта, тэхнічна, выклікае заяву print з выразам, які выпадкова змяшчаецца ў староннім, хаця і бяскрыўдным наборы дужак.

Гэтая функцыя print () (альбо выказванне) выклікаецца на выніках убудаванай функцыі sum (). Гэта функцыя, якая перабірае паслядоўнасць лікаў (альбо любыя ітэрабельныя лічбавыя дадзеныя).

Гэты выклік sum () апрацоўвае значэнні, атрыманыя ад выкліку ўбудаванай функцыі range (). Функцыя range () у розных версіях Python альбо вяртае спіс (паслядоўнасць) цэлых значэнняў, альбо дае цэлыя лікі ў пэўным дыяпазоне (і, па жаданні, з дапамогай пэўнага крокавага значэння).

Я падаю значэнні запуску і спынення функцыі range (). Было б бяскрыўдна называць яго з дыяпазонам (51) ... апускаючы першы аргумент, які па змаўчанні роўны нулю. Гэта бяскрыўдна пры выкліку sum (), таму што, вядома, нуль - гэта ідэнтычнасць дабаўкі; вы можаце дадаць яго колькі заўгодна разоў да сумы, не змяняючы вынік. Я называю гэта аргументам stop 51, таму што дыяпазоны Python уключаюцца з самага пачатку, але не ўключаюць іх канчатковай кропкі ... яны пераходзяць ад некаторага ліку, уключаючы яго, да іншага (але не ўключаючы) іншага нумара.

Ёсць прычына для ўсяго гэтага дадатковага слоўніка. Усе гэтыя падрабязнасці пра функцыі друку ў параўнанні з выказваннямі друку, паслядоўнасці і ітэрабелі і ўключна супраць эксклюзіўных тэрмінатараў дыяпазону.

Навучанне праграмаванню - гэта больш, чым проста капіраванне і ўстаўка прыкладаў кода. Важна разумець пэўныя нюансы, семантыку таго, як працуе Python (альбо любы іншы інтэрпрэтатар альбо кампілятар мовы праграмавання), каб стварыць значныя і нетрывіяльныя фрагменты кода.

Перайсці да падручніка. Існуе мноства з іх, якія можна бясплатна атрымаць для Python з аўдыявізуальнымі лекцыямі і інтэрактыўнымі вэб-практыкаваннямі.


адказ 2:

Выкарыстанне для цыкла for:

сума = 0для i ў дыяпазоне (1,51): сума + = iраздрукаваць (сума)

Цяпер тут i - паслядоўнасць лікаў ад 1 да 50. Тады sum - гэта дадатак sum + i (г.зн., калі праграма запускае значэнне i роўна 1, значэнне sum будзе 1. Цыкл запускаецца 50 разоў і патрэбны вывад стане.

Выкарыстоўваючы арыфметычную формулу прагрэсіі:

num = 50 # дзе num - гэта колькасць тэрмінаў і апошні членa = 1 # a - гэта першы членсума = нумар // 2 * (a + l)друк (сума)

Тут я выкарыстоўваю формулу сумавання арыфметычнай прагрэсіі. Паколькі мы гэта ведаем, формула складае n / 2 * (a + l). Дзе n - колькасць членаў, a - першы член, а l - апошні член.


адказ 3:

Вось код:

def s1tn (n): зваротная сума (дыяпазон (n + 1))раздрукаваць (s1tn (50))

Проста ўвядзіце туды любое (неадмоўнае) цэлае лік, якое вы хочаце. У Python 2 xrange можа быць хутчэй, але ў Python 3 xrange і дыяпазон былі аб'яднаны, і зараз у вас ёсць толькі дыяпазон. Звярніце ўвагу, калі ў вас проста нейкі вялікі лічбавы нумар, праграма можа некаторы час не рэагаваць. САПРАЎДНА ВЯЛІКІ НУМАР можа нават перагрузіць вашы рэсурсы.

Зараз для матэматычнага спосабу зрабіць гэта:

\ сума \ межы_ {m = 1} ^ {n} m = \ frac {n × (n + 1)} {2}

Адпаведны код Python:

def s1tnvm (n): вяртанне (n * (n + 1)) // 2друк (s1tnvm (50))

Выхад павінен быць 1275 у абодвух выпадках.


адказ 4:
вынік = 0для i ў дыяпазоне (1,51): вынік + = i

вынік - гэта ваш жаданы вынік. У наступны раз зрабі самастойна хатняе заданне. Калі вы пачатковец, тое ж самае тычыцца, вам варта займацца самастойна і фарміраваць пачуццё праграмавання, і нават калі праблема цяжкая, не адмаўляйцеся ад яе.


адказ 5:

З майго сеанса Python:

>>> сума (дыяпазон (1, 51))1275 год

Будзьце ўважлівыя, каб другі аргумент убудаванай функцыі range () быў роўны 50 плюс 1, таму што функцыя range () уключае толькі першы аргумент.


адказ 6:

Выкарыстанне "for loop":

Вынік = 0

для i ў дыяпазоне (1,51):

Res + = i

Выкарыстоўваючы матэматычны спосаб:

Res = ((1 + 50) * 50) / 2 # ((першы нумар + апошні нумар) * колькасць лічбаў), падзелены на 2

Выкарыстанне рэкурсіўнай функцыі:

def сума (n):

калі n == 1:

вяртанне 1

вярнуць n + сума (n-1)


адказ 7:
def print1to50 (): нумары = [100, 111, 32, 121, 111, 117, 114, 32, 104, 111, 109, 101, 119, 111, 114, 107] return '' .join (карта (chr, нумары))