🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
10 messages
10 total messages Started by werbe Thu, 18 Jun 2009 22:34
ASCII String na Long
#26251
Author: werbe
Date: Thu, 18 Jun 2009 22:34
13 lines
1446 bytes
Witam,

Banalne pytanie dla wszystkich, którzy choć trochę liznęli pythona...

Mam string (4 znaki):
str = '"¨Są'

W jaki sposób zamienić go na liczbę ?
W tym konkretnym przypadku jak się przekonać, że to faktycznie jest:
2225623993L

pozd
kamil
Re: ASCII String na Long
#26252
Author: Radomir Dopieralski
Date: Fri, 19 Jun 2009 00:32
17 lines
1530 bytes
At Thu, 18 Jun 2009 15:34:20 -0700 (PDT), werbe wrote:

> Witam,
>
> Banalne pytanie dla wszystkich, którzy choć trochę liznęli pythona...
>
> Mam string (4 znaki):
> str = '"¨Są'
>
> W jaki sposób zamienić go na liczbę ?
> W tym konkretnym przypadku jak się przekonać, że to faktycznie jest:
> 2225623993L

Polecam moduł struct.

-- 
Radomir Dopieralski, http://sheep.art.pl
Re: ASCII String na Long
#26253
Author: Daniel Mróz
Date: Fri, 19 Jun 2009 00:48
26 lines
1666 bytes
On 18.06.2009, werbe <kamil.sobczyk@gmail.com> wrote:
> Banalne pytanie dla wszystkich, którzy choć trochę liznęli pythona...
>
> Mam string (4 znaki):
> str = '"¨Są'
>
> W jaki sposób zamienić go na liczbę ?
> W tym konkretnym przypadku jak się przekonać, że to faktycznie jest:
> 2225623993L
import struct
struct.unpack('L', string)[0]


Uwaga na kolejność bitów!!! Nie wiem w jakim kodowaniu jest ten
Twój ciąg znaków. Jeśli nie otrzymasz wymaganej przez Ciebie liczby
spróbuj z innym wyrównaniem. Szczegóły w dokumentacji modułu struct.


Pozdrawiam
Beorn

-- 
Daniel 'Beorn' Mróz <beorn@alpha.pl>    http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V!  PS+ PE++ Y+ PGP++ t- 5  X R !tv b+ DI D++ G++ e h*]
[                          r++  y+                           ]
Re: ASCII String na Long
#26254
Author: werbe
Date: Fri, 19 Jun 2009 09:06
111 lines
4318 bytes
On 19 Cze, 02:48, Daniel Mróz <be...@alpha.pl> wrote:
> On 18.06.2009, werbe <kamil.sobc...@gmail.com> wrote:> Banalne pytanie dla wszystkich, którzy choć trochę liznęli pythona...
>
> > Mam string (4 znaki):
> > str = '"¨Są'
>
> > W jaki sposób zamienić go na liczbę ?
> > W tym konkretnym przypadku jak się przekonać, że to faktycznie jest:
> > 2225623993L
>
> import struct
> struct.unpack('L', string)[0]
>
> Uwaga na kolejność bitów!!! Nie wiem w jakim kodowaniu jest ten
> Twój ciąg znaków. Jeśli nie otrzymasz wymaganej przez Ciebie liczby
> spróbuj z innym wyrównaniem. Szczegóły w dokumentacji modułu struct.
>
> Pozdrawiam
> Beorn
>
>

Dzięki! Przyznam, ze trafiłem na taki sposób rozwiązania w sieci, ale
niestety problem w tym, że w urządzeniu/kości  programowanym za pomocą
Pythona (wersja 1.5.2+) nie mam dostępnego tego modułu :(
Wszystko czym mogę się posłużyć to:
* built-in modules: marshal, imp, main, builtin, sys, md5

* built-in functions:
abs(x)
cmp(x, y)
callable(object)
coerce(x, y)
compile(string, filename, kind)
complex(real [, imag]) (returns error)
delattr(object, name)
divmod(a, b)
eval(expression[, globals[, locals]])
execfile(file[, globals[, locals]])
filter(function, list)
float(x) (returns error)
globals()
input([prompt])
int(x)
intern(string)
issubclass(class1, class2)
locals()
long(x)
oct(x)
open(filename[, mode[, bufsize]])
raw_input([prompt])
reload(module)
apply(function, args[, keywords])
buffer(object[, offset[, size]])
chr(i)
dir([object])
getattr(object, name[, default])
hasattr(object, name)
hash(object)
hex(x)
id(object)
isinstance(object, class)
len(s)
list(sequence)
map(function, list, ...)
max(s[, args...])
min(s[, args...])
pow(x, y[, z])
range([start,] stop[, step])
reduce(function, sequence[, initializer])
repr(object)
setattr(object, name, value)
slice([start,] stop[, step])
str(object)
tuple(sequence)
type(object)
xrange([start,] stop[, step])

* i może warte wspomnienia jest to, że stringi są już obiektami i są
dostępne następujące metody:
s.capitalize()
s.count(sub[, start[, end]])
s.endswith(suffix[, start[, end]])
s.find(sub[, start[, end]])
s.index(sub[, start[, end ]])
s.join(seq)
s.lstrip()
s.lower()
s.replace(old, new[, maxsplit])
s.rfind(sub[, start[, end]])
s.rindex(sub[, start[, end]])
s.rstrip()
s.split([sep [,maxsplit]])
s.startswith(prefix[, start[, end]])
s.strip()
s.swapcase()
s.translate(table[, deletechars])
s.upper()

Więc uściślam moje pytanie: jak to można zrobić nie korzystając z
modułu struck?

Jak z tym się uporam (a raczej przyznam, że liczę na Waszą pomoc ;) )
to kolejnym problemem będzie zamiana tej wartości na znacznik czasu ?
Coś na styl time.ctime(remoteTime) /dodam, że moduł time również nie
jest dostępny :(/

Będę wdzięczny za wszelką pomoc.

Pozd
kamil
Re: ASCII String na Long
#26257
Author: William Bonawentura
Date: Mon, 22 Jun 2009 07:21
9 lines
1489 bytes
Użytkownik "werbe" <kamil.sobczyk@gmail.com> napisał w wiadomości 
news:ed2f0077-9580-4b84-a398-2efc4e9f90d1@r13g2000vbr.googlegroups.com...

> Dzięki! Przyznam, ze trafiłem na taki sposób rozwiązania w sieci, ale
> niestety problem w tym, że w urządzeniu/kości  programowanym za pomocą
> Pythona (wersja 1.5.2+) nie mam dostępnego tego modułu :(

Co to za sterownik z pythonem ? 
Re: ASCII String na Long
#26258
Author: werbe
Date: Mon, 22 Jun 2009 23:25
26 lines
2508 bytes
On 22 Cze, 09:21, "William Bonawentura" <n...@ipartners.pl> wrote:
> Użytkownik "werbe" <kamil.sobc...@gmail.com> napisał w wiadomościnews:ed2f0077-9580-4b84-a398-2efc4e9f90d1@r13g2000vbr.googlegroups.com...
>
> > Dzięki! Przyznam, ze trafiłem na taki sposób rozwiązania w sieci, ale
> > niestety problem w tym, że w urządzeniu/kości  programowanym za pomocą
> > Pythona (wersja 1.5.2+) nie mam dostępnego tego modułu :(
>
> Co to za sterownik z pythonem ?

Takie małe urządzonko zrobione na kości Telit'a (www.telit.com) -
>GT864-PY

Ale jak już pośrednio wróciliśmy do tematu to muszę się przyznać, że
jednak nie wiem jak uporać się z tym dekodowaniem czasu.
Mam ilość sekund od 01.01.1970 -> t = 1245356521L
Wiem ze jest to data: Time=Thu Jun 18 22:22:01 2009

Powiedzmy, że chce "na piechotę" policzyć chociaż godzinę - czyli:
sekundy = ( (t%86400) % 3600) % 60 --> dostaje 1 (jest OK)
minuty = ( (t%86400) % 3600) / 60 --> dostaje  22 (jest OK)
godziny = (t%86400) / 3600  --> dostaje 20, a powinno być 22

Co jest nie tak??

pozd
kamil
Re: ASCII String na Long
#26259
Author: Arkadiusz 'nare' Kindziuk
Date: Tue, 23 Jun 2009 06:48
21 lines
1572 bytes
Dnia wtorek, 23 czerwca 2009 01:25, werbe napisał(a):

> Mam ilość sekund od 01.01.1970 -> t = 1245356521L
> Wiem ze jest to data: Time=Thu Jun 18 22:22:01 2009
> 
> Powiedzmy, że chce "na piechotę" policzyć chociaż godzinę - czyli:
> sekundy = ( (t%86400) % 3600) % 60 --> dostaje 1 (jest OK)
> minuty = ( (t%86400) % 3600) / 60 --> dostaje  22 (jest OK)
> godziny = (t%86400) / 3600  --> dostaje 20, a powinno być 22
> 
> Co jest nie tak??
>

>>> from time import gmtime
>>> gmtime(1245356521).tm_hour
20

Timestamp w UTC, a data w CEST (strefy czasowe)?

-- 
Arkadiusz Kindziuk
Re: ASCII String na Long
#26260
Author: Arkadiusz 'nare' Kindziuk
Date: Tue, 23 Jun 2009 06:53
22 lines
1718 bytes
Dnia wtorek, 23 czerwca 2009 01:25, werbe napisał(a):

> Ale jak już pośrednio wróciliśmy do tematu to muszę się przyznać, że
> jednak nie wiem jak uporać się z tym dekodowaniem czasu.
> Mam ilość sekund od 01.01.1970 -> t = 1245356521L
> Wiem ze jest to data: Time=Thu Jun 18 22:22:01 2009
> 
> Powiedzmy, że chce "na piechotę" policzyć chociaż godzinę - czyli:
> sekundy = ( (t%86400) % 3600) % 60 --> dostaje 1 (jest OK)
> minuty = ( (t%86400) % 3600) / 60 --> dostaje  22 (jest OK)
> godziny = (t%86400) / 3600  --> dostaje 20, a powinno być 22
> 
> Co jest nie tak??
>
Różnica pomiędzy UTC (timestamp) a datą (CEST)?
Bo 
>>> from time import gmtime
>>> gmtime(1245356521).tm_hour
20

-- 
Arkadiusz Kindziuk
Re: ASCII String na Long
#26261
Author: werbe
Date: Wed, 24 Jun 2009 07:10
34 lines
2534 bytes
On 23 Cze, 08:53, Arkadiusz 'nare' Kindziuk <n...@europe.earth.net>
wrote:
> Dnia wtorek, 23 czerwca 2009 01:25, werbe napisał(a):
>
> > Ale jak już pośrednio wróciliśmy do tematu to muszę się przyznać, że
> > jednak nie wiem jak uporać się z tym dekodowaniem czasu.
> > Mam ilość sekund od 01.01.1970 -> t = 1245356521L
> > Wiem ze jest to data: Time=Thu Jun 18 22:22:01 2009
>
> > Powiedzmy, że chce "na piechotę" policzyć chociaż godzinę - czyli:
> > sekundy = ( (t%86400) % 3600) % 60 --> dostaje 1 (jest OK)
> > minuty = ( (t%86400) % 3600) / 60 --> dostaje  22 (jest OK)
> > godziny = (t%86400) / 3600  --> dostaje 20, a powinno być 22
>
> > Co jest nie tak??
>
> Różnica pomiędzy UTC (timestamp) a datą (CEST)?
> Bo>>> from time import gmtime
> >>> gmtime(1245356521).tm_hour
>
> 20
>
> --
> Arkadiusz Kindziuk

Dokładnie tak :)
Też tak podejrzewałem, że to ma coś wspólnego ze strefami czasowymi -
dzięki!

A w naszej strefie czasowej zawsze to będą 2 godziny czy po zmianie
czasu na zimowy różnica ta będzie wynosiła godzinę ?

pozd
kamil
Re: ASCII String na Long
#26262
Author: William Bonawentura
Date: Wed, 24 Jun 2009 07:58
7 lines
1652 bytes
>> Różnica pomiędzy UTC (timestamp) a datą (CEST)?
> A w naszej strefie czasowej zawsze to będą 2 godziny czy po zmianie czasu 
> na zimowy różnica ta będzie wynosiła godzinę ?

Różnica pomiędzy UTC i CEST (Central European Summer Time) zawsze wynosi 2h, 
aczkolwiek przez pół roku uzywamy CET (Central European Time) o różnicy 1h 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads