Ctypes unter 2.7 und 3.1

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Shodan
User
Beiträge: 2
Registriert: Dienstag 20. Juli 2010, 04:48

Morgen. :)

Es gibt also ein deutsches Python Forum, klasse, das hab ich gesucht.
Ich bin gerade dabei, mich einzuarbeiten und komme auch ganz gut voran.
Macht sogar spass, bis jetzt. :roll:
Allerdings stoße ich bei folgendem auf ein kleines Problem;

Code: Alles auswählen

from ctypes import *

msvcrt = cdll.msvcrt
message_string = "Hallo Welt!"
msvcrt.printf(message_string)
Unter Python 2.7 funktioniert das ganze wie es soll.
Unter Python 3.1 dagegen, wird nur der erste Buchstabe, also das H von "Hallo Welt", ausgegeben.
Fehlermeldungen gibt es keine.
Probiert habe ich beides in der Kommandozeile von Windows sowie in Eclipse.
Natürlich könnte ich jetzt einfach in Python 2.7 arbeiten, allerdings würde ich schon 1. gerne wissen, woran es liegt und 2.
Python 3.1 nutzen.

Jemand eventuell eine Idee?


Grüße
BlackJack

@Shodan: Meine Idee wäre, dass Du unter 3.1 an der Stelle wohl besser mit Bytes statt mit einer Unicode-Zeichenkette arbeiten solltest.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Ctypes würde ich nicht unbedingt als Einstieg in die Sprache wählen. Ist doch eher untypisch.
Benutzeravatar
snafu
User
Beiträge: 6736
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hm, ich habe Python auch anwendungsbezogen, d.h. weniger an einem "typischen" Tutorial sondern mehr an der Aufgabe orientiert, erlernt. Und ich finde, dass ich die Sprache inzwischen einigermaßen gut beherrsche. Was ich damit sagen will: Wenn jemand schon jetzt weiß, dass er später in seinen Programmen gewisse Funktionalität aus C-Bibliotheken braucht, finde ich es nicht verkehrt, sich relativ früh mit dem dafür gängigen Modul auseinanderzusetzen.

Ich will nicht wissen, wieviele Leute es gibt, die meinetwegen geübt in Django sind und auch einigermaßen passable Web-Anwendungen damit hinbekommen (vielleicht auch weil sie studien-/berufsmäßig aus dem Umfeld kommen), aber in anderen Teilen von Python relativ wenig Wissen haben. Ebenso könnte das für irgendwelche Naturwissenschaftler gelten, die sich primär mit Numpy beschäftigen.

IMHO macht Lernen immer noch am meisten Spass, wenn man ein Ziel, d.h. eine praktische Umsetzung, vor Augen hat und auch das Gefühl hat, sich dort hinzubewegen. Auf dem Weg dorthin wird man zwangsläufig zu immer besserem Code und generellem Wissen über Python kommen, sofern man denn Wert auf guten Code und Wiederverwendbarkeit legt (vgl. 50-zeilige Main()-Funktion).

Ich persönlich habe z.B. im Moment wesentlich mehr Freude daran, den Cursor in einem Terminal um eine Zeile höher bewegen zu können als die perfekte Implementierung eines Primzahlen-Algorithmus oder eine Adressverwaltung zu schreiben. Alles 3 völlig unterschiedliche Bereiche, bei denen man themenbezogenes Hintergrundwissen benötigt, welches man dann immer noch pythongerecht (z.B. objektorientiert oder unter Nutzung performanter Funktionen/Abläufe) umsetzen kann. :)
Shodan
User
Beiträge: 2
Registriert: Dienstag 20. Juli 2010, 04:48

Ich nutze ctypes sicher nicht als Einstieg, keine Sorge. :lol:
Nein, vielmehr beschäftige ich mich mit IT-Security (deswegen auch Python. :wink: ) und habe mir dazu entsprechende Texte angesehen.
Und da ctypes interessant klang, habe ich kurz reingeschaut.
Das typische "Hallo Welt" eben.
Klappt ja auch, nur eben nicht unter 3.1.

Edit:

Ich sehe gerade Gelsenkirche. :)
Mein Heimatort.
Grüße! :wink:
Antworten