Boolean, data, laikas, išimtys - DonatasNoreika/python1lygis GitHub Wiki
Dvi reikšmės = True (tiesa) arba False (klaidinga)
teisybe = True
print(teisybe)
# True
teisybe2 = False
print(teisybe2)
# False
loginis = bool()
print(loginis)
# False
print(1 == 1 or 2 == 2)
# True
print(2 < 1 or 3 > 6)
# False
logika = 1 == 1 or 2 == 2
print(logika)
# True
atvirkstine = not 2 * 2 == 4
print(atvirkstine)
# Falsesakinys = "Sveikas, pasauli"
as_skaicius = sakinys.isdigit()
print(as_skaicius)
# False
ar_prasideda_s = sakinys.startswith("S")
print(ar_prasideda_s)
# TrueDaugiau apie boolean: https://www.w3schools.com/python/python_booleans.asp
sarasas = ["Vienas", "Du", "Trys"]
skaicius = 123
kablelis = 5.56
zodynas = {"Mantas": 20}
loginis = Trueprint(type(sarasas))
print(type(skaicius))
print(type(kablelis))
print(type(zodynas))
print(type(loginis))
# <class 'list'>
# <class 'int'>
# <class 'float'>
# <class 'dict'>
# <class 'bool'>Programa, kuri paskaičiuoja ir atspausdina sąrašo skaičių (sveikų) sumą:
sarasas = [5, 8, "Lietuva", 95, "Žodis", True]
suma = 0
for x in sarasas:
if type(x) is int:
suma += x
print(suma)
# 108Datetime kintamasis gali išsaugoti datą ir/arba laiką. Jis importuojamas per import datetime
Dabartinė data ir laikas:
import datetime
x = datetime.datetime.today()
print(x)
# 2020-11-25 12:41:47.651313Tik data:
import datetime
x = datetime.date.today()
print(x)
# 2020-11-25Tik laikas:
import datetime
x = datetime.datetime.today().time()
print(x)
# 12:43:45.571871import datetime
y = datetime.datetime(2020, 2, 29, 18, 20, 50)
print(y)
# 2020-02-29 18:20:50
print(y.strftime("%A, %d. %B %Y %I:%M%p"))
# Saturday, 29. February 2020 06:20PMDatetime formatavimo kodai: https://www.w3schools.com/python/python_datetime.asp
Laikas su lietuviškumu:
import datetime
import locale
locale.setlocale(locale.LC_TIME, 'lt_LT.UTF-8')
x = datetime.datetime(2020, 2, 29, 18, 20, 50)
print(x.strftime("%A, %d. %B %Y %I:%M%p"))import datetime
now = datetime.datetime.now()
print(now)
print(now - datetime.timedelta(days=5))
print(now + datetime.timedelta(hours=5))
print(now + datetime.timedelta(days=20, hours=8))
# 2020-11-25 12:26:14.575023
# 2020-11-20 12:26:14.575023
# 2020-11-25 17:26:14.575023
# 2020-12-15 20:26:14.575023import datetime
now = datetime.datetime.now()
nepriklausomybes_diena = datetime.datetime(1990, 3, 11)
skirtumas = now - nepriklausomybes_diena
print(skirtumas.days)
# 10590import datetime
ivesta_data = input("Įveskite datą: ")
data = datetime.datetime.strptime(ivesta_data, "%Y-%m-%d %H:%M:%S")
skirtumas = (datetime.datetime.now() - data)
print(skirtumas.days)
# Įveskite datą: 2004-03-29 00:00:00
# 5604import datetime
now = datetime.datetime.today()
print(now.year)
print(now.month)
print(now.weekday())
print(now.day)
print(now.hour)
print(now.minute)
print(now.second)
print(now.microsecond)
# 2020
# 11
# 2
# 25
# 12
# 13
# 45
# 760594Naudodami timedelta galime pamatuoti, per kiek laiko mūsų kompiuteris susidorojo su užduotimi, pvz.:
from time import time
pradzia = time()
for x in range(1000000):
print("Labas")
pabaiga = time()
print(f"Programa užtruko {pabaiga - pradzia}")Taip pat galime į kodą įdėti pauzę:
import time
for x in range(1000000):
print("Labas")
time.sleep(2)7 / 0
# ZeroDivisionError: division by zero
skaicius = int(input("Įveskite skaičių: "))
# Įveskite skaičių: k11
# ValueError: invalid literal for int() with base 10: 'k11'Ką daryti, kad programa išmestų norimą pranešimą ir nesustotų? Variantas:
dalinys = 7
daliklis = 0
if daliklis == 0:
print("Dalyba iš nulio negalima")
else:
dalinys / daliklis
print("Programa vykdoma toliau")
# Dalyba iš nulio negalima
# Programa vykdoma toliautry:
7 / 0
except:
print("Dalyba iš nulio negalima")
# Dalyba iš nulio negalima
try:
skaicius = int(input("Įveskite skaičių: "))
except:
print("Įvestas klaidingas skaičius")
# Įveskite skaičių: k11
# Įvestas klaidingas skaičius
try:
open('file.txt')
except:
print("Nepavyksta atidaryti failo")
print("Programa vykdoma toliau")
# Nepavyksta atidaryti failo
# Programa vykdoma toliau- Leidžia pakeisti klaidų pranešimus norimu tekstu
- Įvykus klaidai, programa nesustoja (apsaugo nuo lūžimo). Po neįvykdyto kodo, programa vykdoma toliau
- Leidžia nuspręsti, ką daryti, atsiradus klaidai (pvz., išmesti tam tikrą pranešimą, paleisti kitą funkciją ir t.t
try:
skaicius = int(input("Įveskite skaičių: "))
print(7 / skaicius)
open('file.txt')
except ZeroDivisionError:
print("Dalyba iš nulio negalima")
except ValueError:
print("Įvestas klaidingas skaičius")
except FileNotFoundError:
print("Nepavyko atidaryti failo")
# Įveskite skaičių: k11
# Įvestas klaidingas skaičius
# Įveskite skaičių: 0
# Dalyba iš nulio negalima
# Įveskite skaičių: 7
# 1.0
# Nepavyko atidaryti failoGalimų klaidų sąrašas: https://docs.python.org/3/library/exceptions.html
(kodas, vykdomas nepaisant to, kas įvyksta try/except blokuose)
try:
print(7 / 0)
except:
print("Dalyba iš nulio negalima")
finally:
print("Todėl įvykdysime daugybą: ")
print(7 * 7)
print("Programa vykdoma toliau")
# Dalyba iš nulio negalima
# Todėl įvykdysime daugybą:
# 49
# Programa vykdoma toliauwhile True:
try:
x = int(input("Įveskite skaičių: "))
break
except ValueError:
print("Įvedėte ne skaičių. Bandykite dar kartą")Parašyti programą, kuri:
- Leistų vartotojui įvesti sveiką skaičių.
- Atspausdinti True, jei skaičius teigiamas
- Atspausdinti False, jei skaičius neigiamas ar lygus 0
- True/False reikšmei išsaugoti naudoti boolean tipo kintamąjį ar_skaicius_teigiamas
Patarimas: naudoti input, boolean
Parašyti programą, kuri:
- Atspausdintų dabartinę datą ir laiką
- Atimtų iš dabartinės datos ir laiko 5 dienas ir juos atspausdintų
- Pridėti prie dabartinės datos ir laiko 8 valandas ir juos atspausdintų
- Atspausdintų dabartinę datą ir laiką tokiu formatu: 2019 03 08, 09:57:17
Patarimas: naudoti datetime, timedelta (from datetime import timedelta)
https://www.w3schools.com/python/python_datetime.asp
Parašyti programą, kuri:
- Leistų vartotojui įvesti norimą datą ir laiką (pvz. gimtadienį)
- Paskaičiuotų ir atspausdintų, kiek nuo įvestos datos ir laiko praėjo:
- Metų
- Mėnesių
- Savaičių
- Dienų
- Valandų
- Minučių
- Sekundžių
- Kadangi tiksliai galima paskaičiuoti tik dienas ir sekundes, metus, mėnesius ir t.t. paskaičiuokite apytiksliai.
Patarimas: naudoti datetime, .days, .total_seconds()
Skaičių suapvalinimo pavyzdys (kurio gali prireikti šioje užduotyje):
skaicius = 4.66
print(round(skaicius))Pakeisti 1 ir 3 užduotis taip, kad neteisingai įvedus duomenis ar įvykus klaidoms, programos mestų norimas klaidas lietuvių kalba (panaudoti try/except). Ir paprašytų pakartoti įvedimą.