===== PascalABC.NET =====
begin
var (a, b) := ReadInteger2;
Swap(a,b);
Print(a, b)
end.
1: Объект set не реализует __getitem__, соответственно, доступ к элементам set по индексу невозможен. Приведите set к list для получения доступа к элементу по индексу
2: Функция elem не осуществляет проверку правильности вводимых данных, в следствии чего неверные параметры при вызове функции elem могут поднять исключение IndexError: string/list index out of range.
Пояснения:
Используйте Type Hints для указания принимаемого и возвращаемого типа для функции, а так же добавьте проверку получаемых функцией параметров:
import typing
from typing import List
from typing import Any
def elem(data: List[Any], index: int) -> bool :
try:
print(data[index]); return True
except: return False
elem(list(set('string')), 3)
В предложенном примере кода функция возвращает True или False. в зависимости от результата выполнения. Вы можете добавить декоратор, который будет выводить в консоль сообщение об ошибке вызова без прерывания выполнения программы:
import typing
from typing import List
from typing import Any
from typing import Callable
def Status(func: Callable[[Any], bool]):
def _wrap(*a, **kw):
res = func(*a, **kw)
if not res:
print('error occurred during call function')
return _wrap
@Status
def elem(data: List[Any], index: int) -> bool :
try:
print(data[index]); return True
except: return False
elem(list(set('string')), 3) # -> 'r'
elem(list(set('string')), 32) # -> 'Error occurred during call function'
Все примеры кода написаны для языка Python 3.8.3
--- Python 3.8.3 ---
RawCost = input()
#Запишем "Голые" цифры рублей и копеек в две переменные
RawRub, RawCop = map(int, RawCost.split('.'))
#Приведём значения цены в рублях и копейках в порядок, если пользователь ввёл какой-либо неадекват
Rub += RawCop // 100
Penny -= (RawCop // 100) * 100
#Распечатаем полученный результат в консоль
print(f'Cost: {Rub} Rubles, {Penny} Penny')
Программа учитывает, что пользователь может оказаться не сильно умным и ввести цену из разряда 59.615 (то есть "копеечная" часть цены явно больше одного рубля)
Поделитесь своими знаниями, ответьте на вопрос:
Даны 2 целые переменные а и б - целочисленные. составить программу, которая меняет а и б местами. если что это паскаль. нужно использовать var
var
a,b:integer;
a:=20;
b:=13;
a:=a+b-a;writeln('20+13-20',a);
b:=b+a-b;writeln('13+20-13',b);
readln;
end.
Объяснение: