Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: προβληματα στο linux με προγραμματα Python

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5281

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
Καλησπερα σε ολους.Καινουριος στον προγραμματισμο και στα linux,οπως καταλαβαινετε.Εγκατεστησα τελευταια το mx linux σε ενα παλιο laptop.Τρεχω προγραμματα python που ετρεχαν κανονικα στο κινητο μου(qpython).Στην αρχη ειχα προβλημα με τα σχολια στα ελληνικα.Νομιζω το ελυσα με το coding=utf-8 στη πρωτη γραμμη. Μετα αντιμετωπισα προβλημα σε ενα str που ειχα στο τελος ,end" ". Το αφαιρεσα να δω τι γινεται. Μετα μου εβγαζε syntaxc error εκει που δεν υπηρχε. π.χ. σε str που εχω μεσα \n.Δεν γνωριζω τι γινεται. Μηπως πρεπει να εγκαταστησω τιποτα πακετα παραπανω στο linux? Αν μπορειτε βοηθηστε με , ευχαριστω.
Το μονο προγραμμα που τρεχει ειναι ενα που εκτυπωνει αυτοματα καποιες συγκρισεις -πραξεις αριθμων.
Σε οποιο προγραμμα απαιτειται enter kai εισαγωγη απο το χρηστη στραβωνει.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5285

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Καλώς ήρθες στο forum.
Πρώτα απ' όλα, για να λυθεί ένα πρόβλημα πρέπει να υπάρχει κάποιος κώδικας για να δούμε αν υπάρχει σφάλμα.
Στην περίπτωση σου μόνο να μαντέψω μπορώ. Το πιο πιθανό είναι να υπάρχουν αλλαγές γραμμών με "\r\n" ή "\r". Σ' αυτήν την περίπτωση αντικαθιστάς τα προαναφερόμενα με "\n". Στο Linux υπάρχει και ένα βοηθητικό πρόγραμμα για αυτή τη δουλειά: dos2unix. Δοκίμασε αυτό και αν το πρόβλημα συνεχίζει, ανέβασε τον κώδικα. Μην ξεχνάς πριν κάνεις οτιδήποτε να έχεις κάνει εφεδρικά αντίγραφα.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5287

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
import random
# προτροπή για ρίψη ζαριων
print("Ρίξε τα ζάρια πατώντας το: Enter",end="  ")
input()
# τυχαίες τιμές
zari1=random.randint(1,6)
zari2=random.randint(1,6)
# υπολογισμός ζάρια και εμφάνιση
zaria=zari1+zari2
print("Εριξες: ",zari1,"και",zari2,"=", zaria)
# έλεγχος αποτελέσματος 
if zaria==7 or zaria==11:
# νικη
    print("Κέρδισες")
elif zaria<=3 or zaria==12:
# ηττα
    print("Εχασες")
else:
# τίθεται ο στόχος 
    print("Ξανά ρίξε τα ζάρια. Πρέπει να φερεις:", zaria)
# επανάληψη ριψεων
while True:
# προτροπή για ρηψη ζαριων
# τυχαίες τιμές για τα ζάρια
    zari1=random.randint(1,6)
    zari2=random.randint(1,6)
    print("Ρίξε τα ζάρια πατώντας το: Enter",end="  ")
    input()
# υπολογισμός και εμφάνιση ζαριας
    newzaria=zari1+zari2
    print("Εριξες: ",zari1,"και",zari2,"=", newzaria)
# έλεγχος αποτελεσματος
    if newzaria==zaria:
         print(" Κέρδισες. ")
# το παιχνίδι τελείωσε
         break
    elif newzaria==7:
             print(" Εχασες. ")
# το παιχνίδι τελείωσε
             break
Στο κινητό τρέχει Κανονικά (qpython εφαρμογή)
Ευχαριστώ για το ενδιαφέρον.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5288

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Το συγκεκριμένο script τρέχει μια χαρά σε μένα. (Lubuntu).
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5289

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
Υπομονή μέχρι αύριο γιατί απουσιάζω. Θα το τρέξω και θα αναρτήσω ακριβώς τι μου βγάζει. Μήπως φταίει η έκδοση που είναι εγκατεστημένη 2.7..στο mxlinux. Εγώ βέβαια πληκτρολογώ στο τερματικό python3 και με ξεκινάει με 3.5.4 νομίζω.... Αλλά και από το Geany που το τρέχω, τα ίδια. Λίγο υπομονή. Ευχαριστώ.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5290

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Το έτρεξα σε Python 3.

Σε Python 2.x, πρόσθεσε τις παρακάτω γραμμές
στην αρχή του αρχείου:

#-*-coding: utf-8-*-
from __future__ import print_function
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5291

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
OK. Θα το κοιτάξω αύριο μάλλον.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5293

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
#coding= utf-8
import random
# προτροπή για ρίψη ζαριων
print("Ρίξε τα ζάρια πατώντας το: Enter")
input()
# τυχαίες τιμές
zari1=random.randint(1,6)
zari2=random.randint(1,6)
# υπολογισμός ζάρια και εμφάνιση
zaria=zari1+zari2
print("Εριξες: ",zari1,"και",zari2,"=", zaria)
# έλεγχος αποτελέσματος 
if zaria==7 or zaria==11:
# νικη
    print("Κέρδισες")
elif zaria<=3 or zaria==12:
# ηττα
    print("Εχασες")
else:
# τίθεται ο στόχος 
    print("Ξανά ρίξε τα ζάρια. Πρέπει να φερεις:", zaria)
# επανάληψη ριψεων
while True:
# προτροπή για ρηψη ζαριων
# τυχαίες τιμές για τα ζάρια
    zari1=random.randint(1,6)
    zari2=random.randint(1,6)
    print("Ρίξε τα ζάρια πατώντας το: Enter")
    input()
# υπολογισμός και εμφάνιση ζαριας
    newzaria=zari1+zari2
    print("Εριξες: ",zari1,"και",zari2,"=", newzaria)
# έλεγχος αποτελεσματος
    if newzaria==zaria:
         print(" Κέρδισες. ")
# το παιχνίδι τελείωσε
         break
    elif newzaria==7:
             print(" Εχασες. ")
# το παιχνίδι τελείωσε
             break

Ρίξε τα ζάρια πατώντας το: Enter

Traceback (most recent call last):
File "barbouti.py", line 5, in <module>
input()
File "<string>", line 0

^
SyntaxError: unexpected EOF while parsing


(program exited with code: 1)
Press return to continue
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5294

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
# coding=utf-8
import random
def flip():# ορίζω συνάρτηση με όνομα flip που διαλέγει τυχαία 0-1
    kerma=random.randint(0,1)
    return kerma# επιστρέφω την τιμή της
while True:# Εδώ ξεκινάει το πρόγραμμα
    print("\nΔιάλεξε κορώνα ή γράμματα;\n0 για κορώνα. \n1 για γράμματα.") 
    a=int(input())
    kerma=flip()# εδώ καλώ τη συνάρτηση 
    if a<0 or a>1:# αν η συνθήκη είναι True... 
        print ("Αντίο")# τυπώνω... 
        break# και διακόπτω την επανάληψη. 
    elif a==kerma:# αλλιώς συνεχίζει. 
        print(kerma,"Κέρδισες")
    else:
        print(kerma,"Έχασες")

Διάλεξε κορώνα ή γράμματα;
0 για κορώνα.
1 για γράμματα.
0
(0, '\xce\x9a\xce\xad\xcf\x81\xce\xb4\xce\xb9\xcf\x83\xce\xb5\xcf\x82')

Διάλεξε κορώνα ή γράμματα;
0 για κορώνα.
1 για γράμματα.
1
(0, '\xce\x88\xcf\x87\xce\xb1\xcf\x83\xce\xb5\xcf\x82')

Διάλεξε κορώνα ή γράμματα;
0 για κορώνα.
1 για γράμματα.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5295

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
Σας στελνω δυο παραδειγματα μηπως βγαλουμε ακρη. Αν γραψω τις δυο γραμμες που κωδικα που μου εδειξες kamar βγαζει το ιδιο με την πρωτη περιπτωση.
Τελευταία διόρθωση: 5 Χρόνια 1 Μήνας πριν από faros.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5296

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
#-*-coding: utf-8-*-
from __future__ import print_function
a=int(input('Δώσε τον αριθμό α:')) 
b=int(input('Δώσε τον αριθμό β:'))
if a==0 and b==0:
   print('Η εξίσωση είναι αόριστη.')
elif a==0 and b!=0:
   print('Η εξίσωση είναι αδύνατη.')
else:
   print('x=', b/a)

Αυτο τρεχει κανονικα
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5297

  • faros
  • Το Άβαταρ του/της faros
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 10
#-*-coding: utf-8-*-
from __future__ import print_function
import random
while True:
    print("  '1'Πέτρα - '2'Ψαλίδι - '3'Χαρτι")
    a=int(input())
    b=random.randint(1,3)
    if a>3 or a<1:
        break 
    elif a==b:
        print("Ισοπαλία")
    elif a==1 and b==2:
        print("Ψαλίδι. Κέρδισες")
    elif a==1 and b==3:
        print("Χαρτί, Έχασες")
    elif a==2 and b==1:
        print("Πέτρα. Έχασες")
    elif a==2 and b==3:
        print("Χαρτί. Κέρδισες")
    elif a==3 and b==1:
        print("Πέτρα. Κέρδισες")
    elif a==3 and b==2:
        print("Ψαλίδι. Έχασες")
else:#δεν εκτελείται ποτέ η else λόγω της break
    print("\n   Πάμε πάλι")
 

Κι αυτο τρεχει κανονικα.
Παιδια δεχομαι και συμβουλες για τον κωδικα.Να εξοικιωνομαι και να γραφω καλυτερους αλγοριθμους, ευχαριστω.
Στα πακετα του linux που πηγα εχει πολλα που αναφερονται στην python 3 και δεν ειναι εγκατεστημενα.Αλλα δε ξερω αν πρεπει και ποια να εγκαταστησω. Αναφερονται παρα πολλα στην python.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5298

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
faros έγραψε:
#coding= utf-8
import random
# προτροπή για ρίψη ζαριων
print("Ρίξε τα ζάρια πατώντας το: Enter")
input()
# τυχαίες τιμές
zari1=random.randint(1,6)
zari2=random.randint(1,6)
# υπολογισμός ζάρια και εμφάνιση
zaria=zari1+zari2
print("Εριξες: ",zari1,"και",zari2,"=", zaria)
# έλεγχος αποτελέσματος 
if zaria==7 or zaria==11:
# νικη
    print("Κέρδισες")
elif zaria<=3 or zaria==12:
# ηττα
    print("Εχασες")
else:
# τίθεται ο στόχος 
    print("Ξανά ρίξε τα ζάρια. Πρέπει να φερεις:", zaria)
# επανάληψη ριψεων
while True:
# προτροπή για ρηψη ζαριων
# τυχαίες τιμές για τα ζάρια
    zari1=random.randint(1,6)
    zari2=random.randint(1,6)
    print("Ρίξε τα ζάρια πατώντας το: Enter")
    input()
# υπολογισμός και εμφάνιση ζαριας
    newzaria=zari1+zari2
    print("Εριξες: ",zari1,"και",zari2,"=", newzaria)
# έλεγχος αποτελεσματος
    if newzaria==zaria:
         print(" Κέρδισες. ")
# το παιχνίδι τελείωσε
         break
    elif newzaria==7:
             print(" Εχασες. ")
# το παιχνίδι τελείωσε
             break

Ρίξε τα ζάρια πατώντας το: Enter

Traceback (most recent call last):
File "barbouti.py", line 5, in <module>
input()
File "<string>", line 0

^
SyntaxError: unexpected EOF while parsing


(program exited with code: 1)
Press return to continue

Τρέχει κανονικά σε python 3. Ένας λόγος που μπορεί να σου εμφανίζει αυτό το σφάλμα είναι επειδή το τρέχεις με python 2. Σε αυτήν την περίπτωση πρέπει να χρησιμοποιήσεις raw_input αντι για input.

Επίσης το encoding comment πρέπει να είναι
# -*- coding: utf-8 -*-

και όχι αυτό που έχεις εσύ στην πρώτη γραμμή.
Τελευταία διόρθωση: 5 Χρόνια 1 Μήνας πριν από babaliaris1.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

προβληματα στο linux με προγραμματα Python 5 Χρόνια 1 Μήνας πριν #5299

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Γειά σου φίλε
Μερικές γενικές ιδέες από μένα για το πέτρα ψαλίδι χαρτί

1. H έξοδος από το πρόγραμμα πρέπει να είναι συγκεκριμένη. Δηλαδή να λες στον χρήστη
για έξοδο πάτα 5 ή 0 ή -1.

2. Όταν παίρνεις δεδομένα από άλλες πηγές π.χ input (στέλνει πάντα str) ή μετατροπή σε αριθμό πχ μπορεί να είναι αδυνατή και καλό είναι να χρησιμοποιείς try except clause για να μην κρασάρει το πρόγραμμα.

3. Καλό είναι να έχεις δομές λίστες sets, dictionaries ή ότι άλλο χρειάζεται για τα δεδομένα σου για να τα ελέγχεις καλύτερα.

4. Επίσης τα πολλά if elif αυξάνουν πολύ τις πιθανότητες να κάνεις λογικά λάθη και πρέπει να σκέφτεσαι άλλους τρόπους για να το γράψεις.

Με βάση αυτά που σου είπα τα if τα αφήνω ως έχουν :laugh:
import random
 
choices = ["Έξοδος", "Πέτρα", "Ψαλίδι", "Χαρτί"]
while True:
	for i in range(len(choices)):
		print (i,":",choices[i], end="\t")
	try:
		a= int(input('\n :'))
	except:
		continue
	if a==0:
		break 
	b=random.randint(1,3)
	if a>3 or a<1:
		continue 
	elif a==b:
		print("Ισοπαλία")
	elif a==1 and b==2:
		print("Ψαλίδι. Κέρδισες")
	elif a==1 and b==3:
		print("Χαρτί, Έχασες")
	elif a==2 and b==1:
		print("Πέτρα. Έχασες")
	elif a==2 and b==3:
		print("Χαρτί. Κέρδισες")
	elif a==3 and b==1:
		print("Πέτρα. Κέρδισες")
	elif a==3 and b==2:
		print("Ψαλίδι. Έχασες")
	print("\n   Πάμε πάλι")
Τελευταία διόρθωση: 5 Χρόνια 1 Μήνας πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.530 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου