[Çözüldü] Python kodumda Non-ASCII karakter sorunu

Başlatan Warlord, 04 Aralık 2010 - 16:42:34

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Warlord

#!/usr/bin/python

# -*- coding: utf-8 -*-

santigrat=22
fahrenhayt=santigrat*(9.0/5.0)+32

print '%s santigrat derece %s fahrenhayta \
karsılık gelir.' %(santigrat, fahrenhayt)

Yeni başladım öğrenmeye. Ama şu şekilde yazdımmı encode hatası alıyorum yinede..
File "deneme", line 11
SyntaxError: Non-ASCII character '\xc4' in file deneme on line 12, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

alquirel

#1
Aldığın hata print in içindeki "ı" karakterlerinden kaynaklanıyor.
ASCII olmayan karakter var "coding: utf-8" satırını ekle diyor yani.

Yapman gerekeni yapmışsın zaten.

Not: Bu hata değil sadece uyarıdır. Betiğinin çalışmasını engellemez.

Ekleme : Sonradan eklediğin çıktıyı görmeden yazdım yukarıyı, verdiğin kodları direk uçbirimde yazınca çalışıyor. Dosyadan çalıştırmaya bakmak gerek biraz.

jayw

Merhaba;

Betiğinizin ilk iki satırını aşağıdakilerle değiştirin.

#! /usr/bin/env python
# -*- coding: UTF-8 -*-

alquirel

Idle'a yazınca çalıştırıyor uçbirimden çalıştırınca çalışmıyor. :D
Python nazlıymış biraz anlaşılan ;D

jayw

Ya da Idle biraz daha hata affedebilir şekilde tasarlanmış desek :)

alquirel

O halde duruma uygun bir konu başlığı yazmış arkadaş: Hata Nerede? ;D

jayw

Şimdi tekrar kontrol ettim, sorunun 2. satırda olduğunu fark ettim. 2. satırı

# -*- coding: UTF-8 -*-

şeklinde düzeltince de betik sorunsuz olarak çalışıyor. Sanırım UTF-8 ifadesini küçük yazınca python bunu kabul etmiyor. Benim tahminim bu hata karşısında Idle, ya varsayılan kodlamayı kullanıyor, ya da bu şekilde küçük yazılmasını düşünmüş ve buna bir önlem almış :)

Warlord

Alıntı yapılan: jayw - 04 Aralık 2010 - 17:07:30
Merhaba;

Betiğinizin ilk iki satırını aşağıdakilerle değiştirin.

#! /usr/bin/env python
# -*- coding: UTF-8 -*-

Bunu yazdım oldu ve Sorunum çözüldü yşkrler arkadaşlar... Bu forumu seviyorum ya!!!!!!!  :-*

alquirel

Ben de kendi denemelerimi aktarayım.

#! /usr/bin/env python
satırı ile
# -*- coding: utf-8 -*-
satırı arasında boş bir satır bırakınca uçbirim çalıştırmıyor.
Idle da çalıştırmıyor ama hata yerine uyarı veriyor.
Arkadaşın verdiği kodu direk kopyala yapıştır yaptığım için böyle oldu.

Ek olarak utf nin büyük ya da küçük yazılması farketmiyor. ;)

jayw

Bak bunu bilmemiz daha güzel oldu :) Demek bütün sorun orada bırakılan gereksiz bir satır boşluktaymış. Neyse bunu da öğrenmiş olduk. Ama boşluk ile kodlama hatası çok ilginç değil mi? Python hata affetmiyor desene ;)

@Warlord problem çözüldüğüne göre konu başlığının önüne [Çözüldü] eklerseniz, yöneticilerimiz konuyu kapatabilir...

alquirel

Alıntı yapılan: jayw - 04 Aralık 2010 - 17:38:15
Bak bunu bilmemiz daha güzel oldu :) Demek bütün sorun orada bırakılan gereksiz bir satır boşluktaymış. Neyse bunu da öğrenmiş olduk. Ama boşluk ile kodlama hatası çok ilginç değil mi? Python hata affetmiyor desene ;)

@Warlord problem çözüldüğüne göre konu başlığının önüne [Çözüldü] eklerseniz, yöneticilerimiz konuyu kapatabilir...

Dedim ya işte python nazlıymış diye ;D

heartsmagic

Başlık isimlerimizi sorunumuzu daha iyi tanımlayacak şekilde seçersek seviniriz. Bir örneği benim yaptığım değişiklikte görülebilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.