• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie dla poczatkujacych

Object Storage Arubacloud
0 głosów
632 wizyt
pytanie zadane 18 marca 2023 w Python przez Asia BeDe Nowicjusz (130 p.)
Cześć,

Wykupiłam sobie kurs pythona dla początkujących na platformie by się trochę rozwinąć :) jestem mega zielona i bawie się w to dopiero kilka dni. Kurs polega na tym by dopiero po zrobieniu każdego zadania można dostać nowa teorie i nowe zadania. Z tym zadaniem mecze się już ponad dobę i nie mogę zrobić nic innego na platformie. Czy ktoś mnie poratuje i podpowie jak mam to zrobić. Wiem, ze nie można prosić o gotowe rozwiązania, ale ja jestem zdesperowana.

Prevent cheating

 

On Hyperskill, we sometimes need to check that the student's code doesn't use a particular method. For instance, when the task is to manually implement the factorial computation instead of using the factorial() function from the mathmodule. How could we do that?

It is straightforward. We can override math.factorial() to do something else — raise an error or print a message to the student. To do so, first, we define a function that does what we want (for example, prints a message) with the same arguments (since we want to disguise our new function as the original one). Then, outside this new function body, we need to assign it to math.factorial this way: math.factorial = new_math_factorial (pay attention to the absence of parentheses). Now, if the student tries to use math.factorial, our custom function will be raised. It happens because when multiple functions with the same name exist, the later one always overrides the prior.

In this task, you are a content creator at Hyperskill. Implement the example with the factorial yourself. Your program should override math.factorial() and make it printthe message Don't cheat! instead of calculating a factorial. You don't need to call anything.
 

 

Kod zaczyna się od:

Import math.

Pomocy!

i dziękuje jeśli ktoś się zlituje !

 

Asia
komentarz 18 marca 2023 przez Iei Obywatel (1,950 p.)
Nie znamy angielskiego
komentarz 18 marca 2023 przez tangarr Mędrzec (154,860 p.)
W pierwszej kolejności przetłumacz zadanie na język polski i pokaż nam czego nie rozumiesz.
komentarz 18 marca 2023 przez Asia BeDe Nowicjusz (130 p.)
przeniesione 18 marca 2023 przez Arkadiusz Waluk

To po krotce:

Moim zdaniem jest napisac funkcje, ktora bedzie przeszukiwac kody napisane przez uczniow czy nie uzywaja funkcji silnia (factorial()). Aby to zrobić, najpierw definiujemy funkcję, która robi to, co chcemy. Następnie, poza tym nowym ciałem funkcyjnym, musimy przypisać go do math.silnia w ten sposób: math.silnia = new_math_factorial. I zgdone z opisem zadania teraz powinna sie wyswietlac informavja, ze ktos ma nie oszukiwac print("Dont cheat).

Zadanie jest na tyle zagmatwane wiec ja nawet nie wiem od czego zaczac.

Import math.

def math_factorial(): 
print("Don't cheat!")

a dalej to ja nie wiem, dalej wiem, ze trzeba wyciagnac funkce silni ale jak ? NIe wiem jak to polaczyc.

komentarz 18 marca 2023 przez Iei Obywatel (1,950 p.)
Co to znaczy wyciągnąć funkcje silni?
komentarz 18 marca 2023 przez Asia BeDe Nowicjusz (130 p.)
Moim zadaniem jest przeszukanie kodow uczniow czy nie uzywali funkcji silnia i jesli jej uzywali ma pojawic sie komunikat ze oszukuja (Don't cheat!)
komentarz 18 marca 2023 przez pasjonat_algorytmiki Pasjonat (19,540 p.)

@Asia BeDe, 

Proponowałbym swoją parafrazę treści, wtedy większa szansa, że ktoć Ci pomoże.. Spróbuj zrobić to jak najkrócej i najzwięźlej

komentarz 18 marca 2023 przez Asia BeDe Nowicjusz (130 p.)
Sprobuje, ale boje sie, ze cos waznego pomine...
komentarz 18 marca 2023 przez tangarr Mędrzec (154,860 p.)

Jeszcze raz spójrz na zdania

It is straightforward. We can override math.factorial() to do something else

oraz

Then, outside this new function body, we need to assign it to math.factorial this way: math.factorial = new_math_factorial (pay attention to the absence of parentheses).

Jak już to zrozumiesz to spójrz na ostatni akapit

In this task, you are a content creator at Hyperskill. Implement the example with the factorial yourself. Your program should override math.factorial() and make it printthe message Don't cheat! instead of calculating a factorial. You don't need to call anything.

komentarz 18 marca 2023 przez Asia BeDe Nowicjusz (130 p.)
edycja 18 marca 2023 przez Asia BeDe
is straightforward. We can override math.factorial() to do something else

to znaczy:

math_factorial = x ????????

czy ja ide w dobra strone?

mam wrazenie, ze zadanie nie na moj poziom

ja rozmiem co mam zrobic, ale totalnie wiem jak to zapisac :(
komentarz 18 marca 2023 przez Iei Obywatel (1,950 p.)

Raczej 

math.factorial = new_math_factorial

i wtedy umieścić w new_math_factorial to zdanie Don't cheat. Ale to jest tak zagmatwane, że nie wiem czy o to chodzi

komentarz 18 marca 2023 przez Asia BeDe Nowicjusz (130 p.)
Import math.
 
def math_factorial():
print("Don't cheat!")
math.silnia = new_math_factorial

Chyba nie...., ale dzieki

komentarz 18 marca 2023 przez Iei Obywatel (1,950 p.)

import z małej litery, bez kropki po math w pierwszej linijce no i pamiętaj o wcięciach w funkcji

komentarz 18 marca 2023 przez Asia BeDe Nowicjusz (130 p.)
import math
  
def math_factorial():
    print("Don't cheat!")
    math.silnia = new_math_factorial

wrong answer :(((

komentarz 18 marca 2023 przez Iei Obywatel (1,950 p.)
math.silnia = new_math_factorial

to już napisz poza funkcją 

1 odpowiedź

+1 głos
odpowiedź 18 marca 2023 przez tangarr Mędrzec (154,860 p.)

Żeby zrozumieć o co chodzi w zadaniu przeanalizuj i uruchom następujący kod

def funkcja():
    print("Oryginanla funkcja")
    
def inna_funkcja():
    print("Podmieniona funkcja")

funkcja()
funkcja=inna_funkcja
funkcja()

 

2
komentarz 18 marca 2023 przez tangarr Mędrzec (154,860 p.)
Różnej maści boot campy próbują wmówić ludziom, że każdy może zostać programistą, ale nie jest to prawda. Ludzie mają różne predyspozycje, niektórych ograniczeń po prostu nie da się przeskoczyć.

To, że dla ciebie coś jest łatwe do zrozumienia to nie znaczy, że wszyscy inni też będą w stanie to zrozumieć jeżeli wystarczająco się do tego przyłożą.

Treść zadania wprost mówi co należy zrobić. Dlatego założyłem dwie alternatywy: przemęczenie umysłowe lub brak predyspozycji. W żadnym wypadku nie zgodzę się, że było to okropne. Było to realistyczne spojrzenie na sytuację. Nie próbowałem jej zniechęcać. Skupiłem się głównie na tym by pozwoliła sobie odpocząć. Dobrze wiem, jak pomaga spojrzenie na problem świeżym okiem po odświeżającym śnie.
komentarz 18 marca 2023 przez pasjonat_algorytmiki Pasjonat (19,540 p.)
A może problemem była np. angielska treść. Też jest to możliwe.
1
komentarz 18 marca 2023 przez tangarr Mędrzec (154,860 p.)
Możliwe, dlatego sugerowałem dokładne przetłumaczenie treści zadania.

Inną możliwością (którą nie wprost zasugerowałeś) jest po prostu niska jakość materiału szkoleniowego.
komentarz 18 marca 2023 przez pasjonat_algorytmiki Pasjonat (19,540 p.)
"Inną możliwością (którą nie wprost zasugerowałeś) jest po prostu niska jakość materiału szkoleniowego."

Też mi się tak wydaje. Takie zadanie na sam start wydaje mi się, że średnio świadczy o materiale. Moim zdaniem na start (pierwsze kilka godzin nauki), powinno się pokazać podstawy, a dopiero potem jakieś zadania. Dlatego podlinkowałem link do tych filmików.
komentarz 19 marca 2023 przez Iei Obywatel (1,950 p.)
@Asia Bede HyperSkill to jest jakaś nieznana platforma. Na przyszłość zastanów się nad wyborem jakiejś sprawdzonej, np. Udemy. Tam będziesz miała wszystko po polsku i bardzo mało prawdopodobne jest, że będziesz musiała męczyć się z takimi tajemniczymi zadaniami

Podobne pytania

+1 głos
2 odpowiedzi 2,529 wizyt
pytanie zadane 20 lutego 2016 w Java przez Aisekai Nałogowiec (42,190 p.)
+2 głosów
3 odpowiedzi 8,126 wizyt
pytanie zadane 18 lipca 2015 w C i C++ przez maciekvip90 Nowicjusz (140 p.)

92,689 zapytań

141,601 odpowiedzi

320,095 komentarzy

62,048 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...