23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 3/16
AQ H[aPSOH: HHOOR ZRUOG
In [1]:
print("Hello, World!")
The RXWSXW caQ be QiceO\ fRUPaWed, bXW PRUe RQ WhaW iQ Whe QeaU fXWXUe.
WKaW LV "HHOOR WRUOG"?
A YeU\ ViPSOe SURgUaP, XVed WR VhRZ Whe baVic V\QWa[ Rf a SURgUaPPiQg OaQgXage.
See Whe The HeOOR WRUOd CROOecWiRQ (hWWS://ZZZ.UReVOeU-ac.de/ZROfUaP/heOOR.hWP) fRU Whe e[aPSOeV iQ PaQ\
RWheU SURgUaPPiQg OaQgXageV.
The Qeed fRU VXch aQ e[aPSOe caQ be cOeaUO\ VeeQ fURP Whe e[aPSOeV Rf PRUe cRPSOe[, bXW VWiOO faiUO\
UeadabOe OaQgXageV (fRU e[aPSOe, YaUiRXV YeUViRQV Rf C++ aQd JaYa).
BeZaUe Rf Whe AVVePbOeU-Z80-CRQVROe aQd BIT e[aPSOeV. ſ
NRWH: A fXOO P\WhRQ SURgUaP VhRXOd aOZa\V VWaUW ZiWh Whe fROORZiQg:
Whe fiUVW OiQe: #!/usr/bin/env python3
ThiV haV QR PeaQiQg RQ WiQdRZV, bXW iW PaNeV \RXU SURgUaPV eaVieU WR UXQ RQ LiQX[ aQd Mac OSX.
RighW afWeU WhaW, a deVcUiSWiRQ ZhaW Whe SURgUaP dReV, SRVVibO\ ZiWh VRPe RWheU iQfR (V\VWeP
UeTXiUePeQWV, aXWhRUV QaPe aQd cRQWacW, eWc.), beWZeeQ Whe WUiSOe TXRWaWiRQ PaUNV. ThiV iV caOOed a
dRcVWUiQg aQd iW ZiOO be fXUWheU addUeVVed Qe[W ZeeN.
SR, a fXOO "HeOOR WRUOd" SURgUaP ZRXOd ORRN OiNe WhiV:
In [ɰ]:
ɪŠŵusrŵbinŵenv pthonɰ
ɗɗɗ
A program that prints the ɗHelloř WorldŠɗ messageŜ
ɗɗɗ
print("Hello, World!")
We W\SicaOO\ RPiW WheVe eOePeQWV iQ Whe OecWXUeV aQd Ze ZiOO PRVWO\ SUeVeQW chXQNV Rf cRde (WhaW aUe QRW
QeceVVaUiO\ fXOO SURgUaPV) WR VaYe VRPe VSace.
Hello, World!
Hello, World!
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 4/16
The fROORZiQg OiQe WhaW SS\deU addV WR QeZ fiOeV
ɪ ŞƋŞ codingś utfŞɵ ŞƋŞ
iV QRW QeceVVaU\ iQ P\WhRQ 3. HRZeYeU, if \RX aUe XViQg iQWeUQaWiRQaO chaUacWeUV iQ VRPe eQcRdiQg RWheU WhaQ
UTF-8 (Zhich \RX UeaOO\ VhRXOdQ'W dR!), WhiV iV a Za\ WR VSecif\ WhaW eQcRdiQg.
IQ WhiV cRXUVe Ze VhaOO QRW cRYeU eQcRdiQgV, aV iW iV a YeU\ WechQicaO VXbjecW aQd PRVW Rf Whe WiPe iW iV eQRXgh
WR jXVW XVe UTF-8 (fiQd iW iQ \RXU ediWRU'V VeWWiQgV). HRZeYeU, if \RX'Ue eYeU WR bXiOd aQ aSSOicaWiRQ ZiWh Whe Qeed
fRU iQWeUQaWiRQaO chaUacWeUV, dR ORRN XS Whe eQcRdiQgV RQ Whe iQWeUQeW (Whe WiNiSedia Sage
(hWWS://eQ.ZiNiSedia.RUg/ZiNi/ChaUacWeU_eQcRdiQg) iV a gRRd VWaUW) aQd XVe UTF-8
(hWWS://eQ.ZiNiSedia.RUg/ZiNi/UTF-8) ZheQeYeU SRVVibOe, aV iW iV a ZideO\ acceSWed VWaQdaUd aQd Whe defaXOW iQ
P\WhRQ 3. YRX VhRXOd aOVR PaNe VXUe WhaW \RXU ediWRU VaYeV fiOeV XViQg Whe UTF-8 eQcRdiQg (SS\deU dReV WhaW
b\ defaXOW).
IQ P\WhRQ 2, Whe defaXOW eQcRdiQg iV ASCII (hWWS://eQ.ZiNiSedia.RUg/ZiNi/ASCII) aQd Whe UTF-8 VXSSRUW haV WR
be eQabOed PaQXaOO\.
CRPPHQWV
IW iV RfWeQ XVefXO WR add hXPaQ OaQgXage QRWeV iQ Whe cRde. TheVe aUe caOOed cRPPeQWV aQd aUe igQRUed b\ a
cRPSXWeU, bXW Whe\ heOS SURgUaPPeUV Uead Whe cRde.
IQ P\WhRQ, cRPPeQWV aUe Pade b\ SUeSeQdiQg Whe haVh VigQ # iQ fURQW Rf iW. Each cRPPeQWV eQdV ZiWh Whe eQd
Rf Whe OiQe.
IW iV a VWaQdaUd WR aOZa\V ZULWH FRPPHQWV LQ EQJOLVK:
P\WhRQ cRdeUV fURP QRQ-EQgOiVh VSeaNiQg cRXQWUieV: SOeaVe ZUiWe \RXU cRPPeQWV iQ EQgOiVh,
XQOeVV \RX aUe 120% VXUe WhaW Whe cRde ZiOO QeYeU be Uead b\ SeRSOe ZhR dRQ'W VSeaN \RXU
OaQgXage. SRXUce: PEP 8 (hWWSV://ZZZ.S\WhRQ.RUg/deY/SeSV/SeS-0008/#cRPPeQWV)
FRU e[aPSOe:
In [ ]:
ɪŠŵusrŵbinŵenv pthonɰ
ɗɗɗ
A program that prints the ɗHelloř WorldŠɗ messageŜ
ɗɗɗ
ɪ A elcome message
print("Hello, World!")
ɪ TODOś ask user their name and save it as a file
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 5/16
AV \RX caQ Vee, Whe abRYe cRde UXQV jXVW aV Whe SUeYiRXV RQe, bXW a SURgUaPPeU UeadiQg iW caQ geW PRUe
iQfRUPaWiRQ abRXW Whe cRde iWVeOf.
SRPe ediWRUV ZiOO UecRgQi]e ceUWaiQ WagV iQ cRPPeQWV aQd highOighW WheP WR PaNe WheP PRUe QRWicabOe (OiNe
Whe TODO Wag iQ Whe SUeYiRXV e[aPSOe). SRPe Rf Whe PRUe cRPPRQ RQeV aUe, aV OiVWed iQ Whe WiNiSedia'V
cRPPeQWV aUWicOe (hWWS://eQ.ZiNiSedia.RUg/ZiNi/CRPPeQW_%28cRPSXWeU_SURgUaPPiQg%29#TagV):
FIXME WR PaUN SRWeQWiaO SURbOePaWic cRde WhaW UeTXiUeV VSeciaO aWWeQWiRQ aQd/RU UeYieZ.
NOTE WR dRcXPeQW iQQeU ZRUNiQgV Rf cRde aQd iQdicaWe SRWeQWiaO SiWfaOOV.
TODO WR iQdicaWe SOaQQed eQhaQcePeQWV.
XXX WR ZaUQ RWheU SURgUaPPeUV Rf SURbOePaWic RU PiVgXidiQg cRde.
We VhaOO RfWeQ XVe Whe cRPPeQWV WR deQRWe ZhaW ceUWaiQ SaUWV Rf Whe cRde dR. TheVe VhRXOd aOZa\V be
deVcUiSWiYe aQd QRW PeUeO\ UeZUiWWeQ cRde.
FRU e[aPSOe, WhiV iV gRRd:
ɪ Get the sum of primes in ļLļ as ļprimeɕsumļfor x in L:
if is_prime(x):
prime_sum ʫʰ x
aV iW PaNeV cOeaU ZhaW Whe cRde iV dRiQg, eYeQ WR VRPeRQe ZhR dReVQ'W "VSeaN" P\WhRQ.
ThiV iV bad:
ɪ For each element ļļ in the listř if ļļ is a prime numberř
ɪ add it to ļprimeɕsumļŜfor x in L:
if is_prime(x):
prime_sum ʫʰ x
becaXVe WhiV cRPPeQW iV jXVW a UeZUiWe Rf Whe cRde WhaW fROORZV iW aQd, aV VXch, iW iV XVeOeVV.
IW iV adYiVabOe WR NeeS aOO OiQeV (cRPPeQWV aQd dRcVWUiQgV) ZUaSSed XQdeU 80 chaUacWeUV, aOWhRXgh iW VhRXOdQ'W
be fRUced ZheQ iW UedXceV Whe cRde UeadabiOiW\.
IQSXW
HRZ dR Ze LQSXW VRPe daWa?
NRW VXUSUiViQgO\, XViQg Whe fXQcWiRQ input().
In [10]:
x ʰ input()
print("The value of x is", x)
WeOO, WhiV x ORRNV NiQd Rf iPSRUWaQW heUe. WhaW cRXOd iW be?
1ɮ
The value of x is 1ɮ
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 6/16
VaULabOHV
VaUiabOeV aUe XVed WR VWRUe aQd UeWUieYe daWa.
EYeU\ YaUiabOe haV a YaOXe (Zhich, iQ P\WhRQ, caQ be XQdefiQed) aQd a W\Se (SaUWO\ hiddeQ iQ P\WhRQ).
SLPSOH W\SHV
NXPbHU -- geQeUaOO\, ZhaW \RX'd cRQVideU aQ iQWegeU RU a UeaO QXPbeU iQ PaWhePaWicV.
FRU e[aPSOe: 17, -19, 17.19, 0, 2e3, ...
SWULQJ -- a We[W.
FRU e[aPSOe: "word", "This is a mighty deep, philosophical sentence.", "ŞԗখÇïåĿ
sإԵسإ،", "17", ...
The VR-caOOed ePSW\ VWUiQg, "", haV QR chaUacWeUV (iWV OeQgWh iV ]eUR).
BRROHaQ -- WUXWh YaOXeV (True aQd False).NoneTpe -- Whe W\Se Rf a VSeciaO cRQVWaQW None WhaW PeaQV "QR YaOXe".
ThiV iV QRW a ]eUR (a QXPbeU), QRU aQ ePSW\ VWUiQg, QRU aQ\WhiQg eOVe! None iV diffeUeQW fURP aQ\ RWheU
cRQVWaQW aQd aQ\ RWheU YaOXe WhaW a YaUiabOe caQ geW.
BH FaUHIXO: 17 iV a QXPbeU, ZhiOe "1ɮ" iV a VWUiQg!
SRPH QRW-VR-VLPSOH W\SHV
LiVWV aQd WXSOeV -- PRVW OaQgXageV haYe RQO\ OiVWV (XVXaOO\ caOOed aUUa\V)
DicWiRQaUieV
SeWV
ObjecWV
FXQcWiRQV (\eV, fXQcWiRQV caQ be VaYed iQ YaUiabOeV aV ZeOO)
...
MRUe RQ WheVe iQ Whe QeaU fXWXUe.
HRZ GR YaULabOHV ZRUN?
LeW XV aQaO\]e WhiV Siece Rf cRde:
In [12]:
x ʰ input()
print("The value of x is", x)
WhaWeYeU iV RQ Whe UighW-haQd Vide Rf Whe aVVigQPeQW ʰ geWV cRPSXWed fiUVW. TheQ Whe UeVXOW iV aVVigQed WR Whe
YaUiabOe RQ Whe OefW-haQd Vide. WheQ WhiV iV dRQe, Whe Qe[W OiQe Rf cRde iV e[ecXWed.
a mistery
The value of x is a mistery
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 7/16
IQ RXU cRQcUeWe e[aPSOe WhiV PeaQV:
1. The fXQcWiRQ input() UeadV a VeTXeQce Rf chaUacWeUV fURP Whe VWaQdaUd iQSXW (XVXaOO\ Whe XVeU'V
Ne\bRaUd) aQd UeWXUQV iW aV a VWULQJ.
2. ThaW YaOXe iV WheQ aVVigQed WR Whe YaUiabOe x (RQ Whe OefW-haQd Vide Rf Whe aVVigQPeQW RSeUaWRU ʰ).
NRZ x hROdV - aV a VWUiQg - ZhaWeYeU Ze haYe W\Sed XS WR Whe fiUVW QeZOiQe, i.e., XS WR Whe fiUVW EQWeU
Ne\ (Whe QeZOiQe iWVeOf iV QRW SaUW Rf Whe VWUiQg).
3. The fXQcWiRQ print() QRZ RXWSXWV iWV aUgXPeQWV WR Whe VWaQdaUd RXWSXW (XVXaOO\ Whe XVeU'V VcUeeQ),
iQ RUdeU iQ Zhich Whe\ ZeUe giYeQ, VeSaUaWed b\ a ViQgOe VSace chaUacWeU. SR,
FiUVW, a VWUiQg "The value of x is" iV ZUiWWeQ RXW.
TheQ a ViQge VSace chaUacWeU iV ZUiWWeQ RXW.
TheQ Whe YaOXe Rf x iV ZUiWWeQ RXW (QRW Whe VWUiQg "[" iWVeOf, becaXVe x iV a YaUiabOe!).
IQ RWheU ZRUdV, if Ze W\Se "1ɮ", RXU SURgUaP ZiOO ZUiWe
The value of x is 1ɮ
AQd if Ze W\Se "a mistery", RXU SURgUaP ZiOO ZUiWe
The value of x is a mistery
DRQ'W e[SecW P\WhRQ WR dR aQ\WhiQg VPaUW heUe. IW jXVW ZUiWeV RXW Whe YaOXeV aV Whe\ ZeUe giYeQ.
P\WKRQ 2 UHPaUN: IQ P\WhRQ 2, print dReV QRW Qeed SaUeQWheVeV (i.e., print "Hello, World!" iV fiQe).
HRZeYeU, dR iQcOXde WheP eYeQ if ZUiWiQg a P\WhRQ 2 SURgUaP, WR PaNe iW eaVieU WR SRUW WR P\WhRQ 3, aQd WR
aYRid SURbOePV iQ VRPe PRUe adYaQced XVeV \RX PighW eQcRXQWeU iQ Whe fXWXUe.
OQ WKH VLPSOH W\SHV
BH FaUHIXO! EYeQ if a YaOXe ORRkV OiNe a QXPbeU, iW PighW QRW bH RQe!
LeW XV WU\ WR iQSXW WZR QXPbeUV iQ Whe fROORZiQg cRde, aOVR addiQg Whe deVcUiSWiRQV Rf ZhaW iV e[SecWed iQ each
Rf Whe iQSXWV:
In [13]:
x ʰ input("x: ")
y ʰ input("y: ")
print(x, "ʫ", y, "ʰ", xʫy)
x: 1ɮ
y: 1ɰ
1ɮ ʫ 1ɰ ʰ 1ɮ1ɰ
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 8/16
WKaW GLG MXVW KaSSHQ KHUH?
The XVeU W\SeV WZR QXPbeUV, Zhich aUe VaYed -- aV WZR VWULQJV -- iQ YaUiabOeV x aQd y. TheQ Whe SURgUaP
ZUiWeV RXW (aPRQg RWheU WhiQgV) Whe YaOXe Rf xʫy.
HRZ ZRXOd Ze "add" RQe VWUiQg WR aQRWheU iQ Whe UeaO ZRUOd?
FRU e[aPSOe, if x ʰ "Bruce" aQd y ʰ "Wayne", ZhaW ZRXOd x ʫ y be?
(IW Pa\ cRPe aV a OiWWOe VXUSUiVe WhaW "x ʫ y" ZiOO QRW SURdXce "Batman". P\WhRQ iV a ZeOO defiQed OaQgXage
WhaW NeeSV BUXce'V VecUeW ideQWiW\ ZeOO hiddeQ.)
The UeVXOW Rf xʫy ZiOO be "BruceWayne". NRWice WhaW WheUe iV QR addiWiRQaO VSace heUe: Whe VWUiQgV aUe gOXed
(cRQcaWeQaWed) RQe WR aQRWheU, ZiWh QR e[WUa VeSaUaWRUV!
SR, ZhaW haSSeQV if x ʰ "1ɮ" aQd y ʰ "1ɰ"?
IW ZRXOd be YeU\ bad if P\WhRQ ORRNed aW WheVe aQd decided WhaW Whe\ ZeUe QXPbeUV RQO\ becaXVe Whe\ haYe
QRWhiQg bXW digiWV. Ma\be Ze ZaQW WheP cRQcaWeQaWed (aV RSSRVed WR addiQg WheP RQe WR aQRWheU)!
SR, Whe UeVXOW iV -- b\ QRZ QR ORQgeU VXUSUiViQgO\ -- "1ɮ1ɰ", becaXVe Whe VWUiQgV' addiWiRQ ʫ iV a cRQcaWeQaWiRQ,
UegaUdOeVV Rf Whe YaOXe Rf Whe VWUiQgV iQ TXeVWiRQ.
HRZ dR Ze WeOO P\WhRQ WR "WUeaW WheVe WZR YaUiabOeV aV QXPbeUV"?
CRQYHUWLQJ baVLF W\SHV
We caQ e[SOiciWO\ WeOO P\WhRQ WR cRQYeUW a VWUiQg WR aQ iQWegeU RU a UeaO QXPbeU, aQd Yice YeUVa.
In [1ɫ]:
x ʰ int(input())
y ʰ float(input())
print("x ʰ ", x)
print("y ʰ ", y)
print("xʫy ʰ ", xʫy)
z ʰ 'This is a string: "' ʫ str(xʫy) ʫ '"'
print(z)
1ɮ
1.23
x ʰ 1ɮ
y ʰ 1.23
xʫy ʰ 1ɯ.23
This is a string: "1ɯ.23"
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 9/16
We Vee WhUee cRQYeUViRQ fXQcWiRQV:
int(), Zhich WaNeV a VWUiQg aQd cRQYeUWV iW WR aQ iQWegeU. If Whe aUgXPeQW iV QRW a VWUiQg
UeSUeVeQWaWiRQ Rf aQ iQWegeU, aQ eUURU RccXUV.
float(), Zhich WaNeV a VWUiQg aQd cRQYeUWV iW WR a "UeaO" QXPbeU (aOVR caOOed floaWiQg SRiQW QXPbeU,
heQce Whe QaPe Rf Whe fXQcWiRQ). If Whe aUgXPeQW iV QRW a VWUiQg UeSUeVeQWaWiRQ Rf a UeaO QXPbeU, aQ
eUURU RccXUV.
str(), Zhich WaNeV a QXPbeU (aPRQg RWheU aOORZed W\SeV) aQd cRQYeUWV iW WR a VWUiQg.
P\WKRQ 2 UHPaUN: IQ P\WhRQ 2, input() iV ViPiOaU WR float(input()) iQ P\WhRQ 3 (acWXaOO\, eval(input()),
bXW WhaW iV ZeOO be\RQd WhiV OecWXUe). ThiV PeaQV iW ORadV a QXPbeU aQd UeWXUQV iW aV a fORaWiQg SRiQW QXPbeU
(caXViQg aQ eUURU RU a VWUaQge behaYiRXU if aQ\WhiQg eOVe iV giYeQ aV Whe iQSXW).
TR ORad a VWUiQg iQ P\WhRQ 2, RQe haV WR caOO raw_input() (Zhich dReV QRW e[iVW iQ P\WhRQ 3).
A QRWH RQ WKH VWULQJ FUHaWLRQ: TheUe aUe beWWeU Za\V WR fRUP Whe YaUiabOe z (XViQg YaUiRXV fRUPaWWiQg
PeWhRdV), bXW WhiV ZiOO haYe WR ZaiW a feZ ZeeNV XQWiO Ze cRYeU VWUiQgV iQ PRUe deSWh WhaQ heUe.
MRUH RQ WKH aVVLJQPHQWV
WhaW ZiOO Whe fROORZiQg cRde SUiQW?
In [1ɬ]:
x ʰ 1ɮ
print("The value of x was", x)
x ʰ x ʫ 2
print("The value of x is", x)
AV Ze Vaid befRUe: ZhaWeYeU iV RQ Whe UighW haQd Vide Rf Whe aVVigQPeQW ʰ, geWV cRPSXWed ILUVW. OQO\ aIWHU
WKaW, Whe UeVXOW iV aVVigQed WR Whe YaUiabOe RQ Whe OefW haQd Vide.
SR, ZheQ P\WhRQ eQcRXQWeUV Whe cRPPaQd
x ʰ x ʫ 2
ZhiOe Whe YaOXe Rf x iV 17, iW fiUVW cRPSXWeV x ʫ 2, Zhich iV 19. AfWeU WhaW, iW SeUfRUPV Whe aVVigQPeQW x ʰ 1ɰ,
VR 19 becRPeV Whe QHZ YaOXH Rf x (Zhich iV WheQ diVSOa\ed ZiWh Whe VecRQd print fXQcWiRQ).
The value of x was 1ɮ
The value of x is 1ɰ
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 10/16
IQ PRVW Rf Whe PRdeUQ OaQgXageV, x ʰ x ʫ y caQ be ZUiWWeQ aV x ʫʰ y. The VaPe VhRUWcXW ZRUNV fRU RWheU
RSeUaWRUV aV ZeOO, i.e., x ʰ x op y caQ be ZUiWWeQ aV x opʰ y.
FRU baVic QXPeUicaO RSeUaWiRQV, WhiV PeaQV Ze haYe Whe fROORZiQg VhRUWcXWV:
E[SUHVVLRQ SKRUWFXW
x ʰ x ʫ y x ʫʰ y
x ʰ x - y x -ʰ y
x ʰ x * y x *ʰ y
x ʰ x / y x /ʰ y
x ʰ x // y x //ʰ y
x ʰ x ʩ y x ʩʰ y
x ʰ x ** y x **ʰ y
A QRWH RQ RWKHU OaQJXaJHV: WheUe aUe QR iQcUePeQW (ʫʫ) aQd decUePeQW (--) RSeUaWRUV iQ P\WhRQ.
SRPH VSHFLaO RSHUaWRUV
MRVW Rf Whe RSeUaWRUV iQ Whe abRYe WabOe haYe Whe VaPe PeaQiQg aV iQ PaWhePaWicV (IRU WKRVH NQRZLQJ C: /
PeaQV Whe XVXaO, i.e., UeaO diYiViRQ). The WhUee QRW XVed iQ PaWhePaWicV aUe defiQed aV fROORZV:
x // y PeaQV fORRUed TXRWieQW Rf x aQd y (aOVR caOOed iQWegeU diYiViRQ), i.e., x // y ,
x ʩ y PeaQV Whe UePaiQdeU Rf , i.e., x ʩ y :ʰ x - y * (x // y),
x ** y PeaQV (x WR Whe SRZeU y).
P\WKRQ 2 UHPaUN: IQ P\WhRQ 2, Whe RUdiQaU\ UeaO diYiViRQ x/y ZRUNV iQ a C-OiNe PaQQeU, Zhich PeaQV WhaW x/y
iV eTXiYaOeQW WR x//y if bRWh x aQd y aUe iQWegeUV.
IQ P\WhRQ 3, x/y aOZa\V PeaQV UeaO diYiViRQ. IQ RWheU ZRUdV,
P\WhRQ 2: 3//2 ʰ 3/2 ʰ 1, bXW 3/2.0 ʰ 3.0 / 2 ʰ 3.0 / 2.0 ʰ 1.ɬ;
P\WhRQ 3: 3//2 ʰ 1, bXW 3/2 ʰ 3/2.0 ʰ 3.0 / 2 ʰ 3.0 / 2.0 ʰ 1.ɬ.
RHaO QXPbHU WURXbOH
WheQ deaOiQg ZiWh UeaO QXPbeUV, RQe PXVW be e[WUePeO\ caUefXO!
SLPSOH aULWKPHWLFV
WhaW haSSeQV ZheQ Ze WU\ WR cRPSXWe a ʫ b - a fRU VeYeUaO diffeUeQW UeaO YaOXeV Rf a aQd b? FaiUO\ RfWeQ,
Whe UeVXOW ZiOO QRW be b!
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 11/16
In [1ɭ]:
a ʰ 10
b ʰ 0.1
print("a ʰ", a, " b ʰ", b, " -ʴ ", "a ʫ b - a ʰ", a ʫ b - a, "!ʰ", b, "ʰ b")
a ʰ 10**ɮ
b ʰ 10**(-ɮ)
print("a ʰ", a, " b ʰ", b, " -ʴ ", "a ʫ b - a ʰ", a ʫ b - a, "!ʰ", b, "ʰ b")
a ʰ 10**11
b ʰ 10**(-11)
print("a ʰ", a, " b ʰ", b, " -ʴ ", "a ʫ b - a ʰ", a ʫ b - a, "!ʰ", b, "ʰ b")
A GLYLVLRQ
TheUe iV QR VXch WhiQg aV a UeaO QXPbeU iQ a cRPSXWeU. AOO QXPbeUV aUe acWXaOO\ (VRPeWhiQg OiNe) deciPaOV
ZiWh aQ XSSeU OiPiW RQ Whe QXPbeU Rf cRUUecWO\ UePePbeUed digiWV. The UeVW Rf Whe digiWV iV ORVW, Zhich caQ
SURdXce ZeiUd UeVXOWV, OiNe x * (1 / x) ʱ 1.
In [1ɮ]:
x ʰ ɫɮɫɰɬ3
y ʰ 1 / x
print(x * y)
UVH LQWHJHUV ZKHQHYHU SRVVLbOH
FibRQacci QXPbeUV aUe defiQed aV fROORZV:
TheUe iV aOVR a diUecW fRUPXOa fRU cRPSXWiQg :
MaWhePaWicaOO\, bRWh defiQiWiRQV aUe eTXiYaOeQW. OQ a cRPSXWeU, hRZeYeU, Whe VecRQd ZiOO VRRQ giYe \RX ZURQg
UeVXOWV.
IQ Whe fROORZiQg cRde, fib1(n) UeWXUQV Whe n-Wh FibRQacci QXPbeU cRPSXWed b\ a ViPSOe iQWegeU-aUiWhPeWicV
aOgRUiWhP, ZhiOe fib(2) XVeV Whe abRYe fRUPXOa (QeYeU XVe Whe UecXUViYe defiQiWiRQ fRU cRPSXWaWiRQ Rf
FibRQacci QXPbeUV!).
a ʰ 10 b ʰ 0.1 -ʴ a ʫ b - a ʰ 0.0ɰɰɰɰɰɰɰɰɰɰɰɰɰɰɭɫ !ʰ 0.1 ʰ b
a ʰ 10000000 b ʰ 1e-0ɮ -ʴ a ʫ b - a ʰ 1.00ɬɯ2ɯ3ɯ0ɬɯɫɮ1ɭɯe-0ɮ !ʰ 1e-0ɮ
ʰ b
a ʰ 100000000000 b ʰ 1e-11 -ʴ a ʫ b - a ʰ 0.0 !ʰ 1e-11 ʰ b
0.ɰɰɰɰɰɰɰɰɰɰɰɰɰɰɰɰ
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 12/16
In [1]:def fib1(n):
f0 ʰ 0
f1 ʰ 1
hile n ʴ 1:
(f0, f1) ʰ (f1, f0 ʫ f1)
n -ʰ 1
rern f1 def fib2(n):
sqrtɬ ʰ ɬ ** .ɬ
phi ʰ (1 ʫ sqrtɬ) / 2
psi ʰ (1 - sqrtɬ) / 2
rern int((phi**n - psi**n) / sqrtɬ)
n ʰ int(input("Type n (try to go for ɮ3 or more): "))
fib1n ʰ fib1(n)
fib2n ʰ fib2(n)
print("|fib1(n) - fib2(n)| ʰ |" ʫ str(fib1n), "-", str(fib2n) ʫ "| ʰ", abs(fib1n - fib2n
))
EYHQ a VLPSOH aGGLWLRQ LQFXUV HUURUV
The fROORZiQg cRde cRPSXWeV aQd SUiQWV WhUee VXPV:
In [21]:
s ʰ 0for _ in range(1000):
s ʫʰ 0.1
print(s)
s ʰ 0for _ in range(10000):
s ʫʰ 0.1
print(s)
s ʰ 0for _ in range(10000000):
last ʰ s
s ʫʰ 0.1
print(s)
NRWice hRZ Whe UeVXOW iV VRPeWiPeV VPaOOeU aQd VRPeWiPeV biggeU WhaQ Whe cRUUecW UeVXOW.
Type n (try to go for ɮ3 or more): 100
|fib1(n) - fib2(n)| ʰ |3ɬɫ22ɫɯɫɯ1ɮɰ2ɭ1ɰ1ɬ0ɮɬ - 3ɬɫ22ɫɯɫɯ1ɮɰ2ɭ31111ɭɯ| ʰ 11ɰ
ɭ0ɰ3
ɰɰ.ɰɰɰɰɰɰɰɰɰɰɰɯɭ
1000.0000000001ɬɯɯ
ɰɰɰɰɰɰ.ɰɰɰɯ3ɯɰɮɬɫ
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 13/16
AVVRFLaWLYLW\ RI aGGLWLRQ
We aOO NQRZ WhaW fRU a fiQiWe VeW Rf UeaO QXPbeUV Whe fROORZiQg iV WUXe:
fRU aQ\ SeUPXWaWiRQ . HRZeYeU, iQ a cRPSXWeU, WhiV iVQ'W aOZa\V VR.
In [2]:from mah impor pi
x ʰ 1ɬ * pi
ɪ Create the list of series elements
elts ʰ [ ]
f ʰ 1for k in range(1, 1ɬ0, 2):
elts.append(x**k / f)
f *ʰ -(kʫ1) * (kʫ2)
ɪ Sum elements in the original order
sin1 ʰ 0for el in elts:
sin1 ʫʰ el
print("sin1 ʰ", sin1)
ɪ Sum elements in the reversed order
sin2 ʰ 0for el in reversed(elts):
sin2 ʫʰ el
print("sin2 ʰ", sin2)
ɪ Sum elements from the middle one to the ones on the edges
cnt ʰ len(elts)
mid ʰ cnt // 2
sin3 ʰ 0for i in range(mid ʫ 1):
if mid ʫ i ʳ cnt:
sin3 ʫʰ elts[mid ʫ i]
if i:
sin3 ʫʰ elts[mid - i]
print("sin3 ʰ", sin3)
ɪ Sum elements from the ones on the edge to the middle one
sinɫ ʰ 0for i in reversed(range(mid ʫ 1)):
if mid ʫ i ʳ cnt:
sinɫ ʫʰ elts[mid ʫ i]
if i:
sinɫ ʫʰ elts[mid - i]
print("sinɫ ʰ", sinɫ)
print("|sin1 - sinɫ| ʰ", abs(sin1 - sinɫ))
print("the first element:", elts[0])
print("the last element:", elts[-1])
sin1 ʰ -3121.3ɭɰɰɫɰɬɯɰɬɰ2ɭ
sin2 ʰ -2ɰɫɮ.ɯ0ɮɭɯɭɬɭɯɮɫɭɮ
sin3 ʰ -2ɫ03.ɯ0ɮɭɯɭɬɭɯ32ɯ3
sinɫ ʰ -1ɮɭɯ.0
|sin1 - sinɫ| ʰ 13ɬ3.3ɭɰɰɫɰɬɯɰɬɰ2ɭ
the first element: ɫɮ.123ɯɯɰɯ03ɯɫɭɯɰ
the last element: ɬ.3ɰɭɭɮɮɭɭ1ɭɯ2ɫɫɭɬe-12
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 14/16
The abRYe iV Whe cRPSXWaWiRQ Rf Yia Whe fiUVW eOePeQWV Rf Whe Ta\ORU VeUieV
(hWWS://eQ.ZiNiSedia.RUg/ZiNi/SiQe#SeUieV_defiQiWiRQ) Rf Whe ViQe fXQcWiRQ:
sin1 cRPSXWaWiRQ VWaUWiQg fURP Whe fiUVW eOePeQW ( ),
sin2 gRiQg fURP Whe OaVW WR Whe fiUVW eOePeQW ( ),
sin3 gRiQg fURP Whe ceQWeU RXW ( ),
sinɫ gRiQg fURP Whe edgeV iQ ( ).
The diffeUeQce beWZeeQ sin1 aQd sinɫ iV URXghO\ , Zhich Pa\ QRW ORRN OiNe PXch, bXW iW iV faU PRUe WhaQ
Whe diffeUeQce beWZeeQ aQ\ WZR ViQeV VhRXOd be.
YRX PighW aOVR QRWice WhaW VhRXOdQ'W be aQ\ZheUe QeaU RU .
OQe PighW WhiQN WhaW Ze VhRXOd cRPSXWe PRUe eOePeQWV Rf Whe VXP, bXW WhiV iV QRW Whe caVe: Whe OaVW eOePeQW
Rf Whe VXP iV RQO\ aURXQd (aQd Whe fROORZiQg RQeV ZRXOd be eYeQ VPaOOeU).
SR ZhaW haSSeQed heUe?
A deWaiOed e[SOaQaWiRQ iV SaUW Rf NXPeUicaO AQaO\ViV, bXW Whe Ne\ iV iQ Whe OaUgeO\ YaU\iQg PagQiWXde aQd
aOWeUQaWiQg VigQV Rf Whe eOePeQWV:
In [3]:
ʩmaplolib inline impor maplolibŜpplo as pl
plt.plot(elts)
plt.show()
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 15/16
PRZHUV
LeW XV defiQe
IQ RWheU ZRUdV, iV Whe QXPbeU WhaW Ze geW b\ WaNiQg Whe VTXaUe URRW Rf , WiPeV iQ a URZ, aQd
iV Whe QXPbeU Ze geW b\ cRPSXWiQg Whe VecRQd SRZeU Rf , WiPeV iQ a URZ.
ObYiRXVO\, fRU aQ\ aQd . BXW, OeW'V Vee ZhaW a cRPSXWeU
haV WR Va\ if Ze iQSXW VRPe aQd :
In [2ɫ]:from mah impor sqrt
x ʰ float(input("x ʰ "))
n ʰ int(input("n ʰ "))
t ʰ xfor _ in range(n):
t ʰ sqrt(t)for _ in range(n):
t *ʰ t
print("g(f(" ʫ str(x) ʫ ", " ʫ str(n) ʫ "), " ʫ str(n) ʫ ") ʰ", t)
t ʰ xfor _ in range(n):
t *ʰ tfor _ in range(n):
t ʰ sqrt(t)
print("f(g(" ʫ str(x) ʫ ", " ʫ str(n) ʫ "), " ʫ str(n) ʫ ") ʰ", t)
DR WKHVH WLQ\ HUURUV UHaOO\ PaWWHU?
YeV, URXQdiQg eUURUV haYe UeSeaWedO\ Oed WR caWaVWRShic cRQVeTXeQceV, fRU e[aPSOe, iQ eQgiQeeUiQg, fiQaQce,
aQd VcieQce. See [hWWS://Wa.WZi.WXdeOfW.QO/XVeUV/YXiN/Zi211/diVaVWeUV.hWPO
(hWWS://Wa.WZi.WXdeOfW.QO/XVeUV/YXiN/Zi211/diVaVWeUV.hWPO)] fRU aQ iQWeUeVWiQg OiVW. EYeQ ZheQ VROYiQg a OiQeaU
V\VWeP Rf eTXaWiRQV, SURbabO\ Whe PRVW fXQdaPeQWaO SURbOeP iQ VcieQWific cRPSXWiQg, URXQdiQg eUURUV haYe WR
be WaNeQ caUe Rf.
CRQVideU Whe fROORZiQg WZR V\VWePV Rf OiQeaU eTXaWiRQV:
WhaW aUe WheiU VROXWiRQV?
x ʰ 1.ɮ
n ʰ ɬ3
g(f(1.ɮ, ɬ3), ɬ3) ʰ 1.0
f(g(1.ɮ, ɬ3), ɬ3) ʰ inf
23/09/2019 01c-S\WhRQ_iQWUR
hWWSV://SeUVRQaOSageV.PaQcheVWeU.ac.XN/VWaff/VWefaQ.gXeWWeO/S\/01c-S\WhRQ_iQWUR.hWPO 16/16
The VROXWiRQ WR Whe fiUVW RQe iV , bXW Whe VROXWiRQ WR Whe VecRQd RQe iV .
NRWice WhaW bRWh V\VWePV RQO\ diffeU b\ a WiQ\ chaQge Rf PagQiWXde iQ jXVW RQe eOePeQW, bXW WheiU
VROXWiRQV aUe cRPSOeWeO\ diffeUeQW! SXch a VPaOO chaQge cRXOd eaViO\ be caXVed b\ RQe Rf Whe VPaOO
eUURUV VhRZQ befRUe. SiPiOaU UeVXOWV caQ be achieYed ZiWh aUbiWUaUiO\ VPaOO eUURUV.
BRWWRP OLQH
AOZa\V be e[WUa caUefXO ZheQ ZRUNiQg ZiWh "UeaO" QXPbeUV iQ a cRPSXWeU (RU, beWWeU, aYRid WheP aOWRgeWheU if
SRVVibOe, OiNe iQ Whe FibRQacci e[aPSOe)!
TheVe eUURUV caQQRW aOZa\V be cRQVideUed iQVigQificaQW, aV Whe\ caQ SiOe XS aQd/RU gURZ iQ VXbVeTXeQW
cRPSXWaWiRQV.
WiWhRXW \RXU OecWXUeU beiQg biaVed aW aOO, aQ\RQe iQWeQdiQg WR dR VeUiRXV cRPSXWaWiRQV ZiWh cRPSXWeUV VhRXOd
WaNe Whe cRXUVe "NXPeUicaO AQaO\ViV 1
(hWWS://ZZZ.PaWhV.PaQcheVWeU.ac.XN/VWXd\/XQdeUgUadXaWe/cRXUVeV/PaWhePaWicV-bVc/cRXUVe-XQiW-VSec/?
XQiWcRde=MATH20602)" (MATH20602).