Wpis z mikrobloga

#python #naukaprogramowania #pythanie kurcze tak się zastanawiam. zmienna nazywa się a=0.50 , a gdy robię na nią print(a) , to wyskakuje= 0.5 , bez zera na końcu . Ciekawe, czy da się zrobić funkcję print, żeby nie Python nie zmieniał nic z zmiennej, która jest przypisana ? niby pierdoła, ale czasem przy porównaniach i jakiś if'ach może narobić problemu
J.....L - #python #naukaprogramowania #pythanie kurcze tak się zastanawiam. zmienna n...

źródło: comment_AEbNYBp4uqrJzTGFIs6IO6IWS3PFOQ0Z.jpg

Pobierz
  • 26
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MojaPuffa: @stefan_pmp: @Waniv: @Mirkomil: @stefan_pmp: dziękuje wszystkim komentującym, łapiecie plusa. Natomiast problem, który u mnie wyniknał prawdopodobnie jest innej natury. Cięzko mi rozkminić narazie konkretnie o co chodzi, ale kwestia jest taka, że jak mam słownik w którym są wypisane monety, i jest naprzykłąd 0.50zl ,
to jak pózniej chcę porównać wartość tego elementu słownika po wykonaniu procedury replace() z jakąś zmienną
J.....L - @MojaPuffa: @stefanpmp: @Waniv: @Mirkomil: @stefanpmp: dziękuje wszystkim k...

źródło: comment_MD0illb5cKbncgXhhNRZvZxWq7ew0Xoy.jpg

Pobierz
  • Odpowiedz
@JungleJamPL: Tak jak piszą wyżej, poczytaj o typach zmiennych. Nie ma ich wiele, a oszczędzi Ci to mnóstwo bólu.

bo nawet jak rzutuję rodzaje zmiennej na tą samą , to nawet wtedy porównanie mi nie wychodzi. dziwna sprawa

W Pythonie nie ma rzutowania ani niejawnej konwersji. Każda zmiana typu musi iść jawnie przez jego konstruktor:
a = 0.50
b
  • Odpowiedz
@ManfredMacx: @CiemnaStronaNiemocy: @luzny_lori: @mprzemo: ja to wszystko rozumiem, ale mi chodzi o coś kompletnie innego. Tworzysz zmienna a=0.50 , potem rzutujesz a = str(a) , i jak potem porównasz z elementem słownika który jest "0.50" to nie jest to samo, bo w momencie gdy przyporządkowujesz 0.50 (float) do zmiennej a na początku to Python automatycznie usuwa "0" na końcu.
J.....L - @ManfredMacx: @CiemnaStronaNiemocy: @luzny_lori: @mprzemo: ja to wszystko r...

źródło: comment_XSC1NzdbkKm6oi71VKxiT861XWFQZo6Y.jpg

Pobierz
  • Odpowiedz
@Waniv: faktycznie, celna uwaga. Rzutowanie float do string'a nie sprawdziło się w tym przypadku. Ja po prostu ze słownika pousuwałem 0.50 0.20 etc a zrobiłem 0.5 0.2 i to mi wystarczyło w tym przypadku ale ogólnie niby pierdoła, ale można się na tym przejechać
  • Odpowiedz
z żadnej zmiennej typu Float, nie ucinać żadnego zera na końcu


@JungleJamPL: nie. taka operacja nie ma sensu bo nigdzie ten float nie pamięta, jak go oryginalnie tworzyłeś. zero kropka pięć zero -- tego nigdzie w pamięci nie ma bo i po co, jest 64-bitowy (bodajże, nie pamiętam co konkretnie python robi) zapis, który sprowadza się do 1 * 2^-1.

jeżeli potrzebujesz porównywać floaty przez == to robisz
  • Odpowiedz