Μάθημα 1 - Ασκήσεις

...ασύγχρονα μαθήματα python

Re: Μάθημα 1 - Ασκήσεις

Δημοσίευσηαπό Luke » 03 Αύγ 2009, 14:50

Ευχαριστώ sokoban4ever για τις πληροφορίες αλλά στην δικιά μου περίπτωση νομίζω δεν ισχύουν τα παραπάνω και θα εξηγήσω γιατί.
Πρώτα παραθέτω ολόκληρο το πρόγραμμα που έγραψα για την άσκηση 7:
Κώδικας: Επιλογή όλων
deuteros = 1.75
protos = deuteros - 1/4
tritos = (protos + deuteros)/3 + 1
tetartos = (tritos - protos) + 2
pemptos = 3.5 ** 2 -protos - deuteros - tritos - tetartos

print("Protos = {0:.3} m\nDeuteros = {1:.3} m\nTritos = {2:.3} m\n\
Tetartos = {3:.3} m\nPemptos = {4:.3} m".format(protos, deuteros, tritos,
tetartos, pemptos))

Σε αυτή την περίπτωση στη format() δε δίνω κάποιο string ως όρισμα αλλά δεκαδικούς αριθμούς (άρα number type σε αντιδιαστολή με το παραπάνω που παρέθεσες).

Επιπλέον τα αποτελέσματα που δίνει είναι τα εξής:
Κώδικας: Επιλογή όλων
Protos = 1.5 m
Deuteros = 1.75 m
Tritos = 2.08 m
Tetartos = 2.58 m
Pemptos = 4.33 m
που σημαίνει ότι αν ήταν string θα έπρεπε στο pemptos π.χ. αν έδινε 4.3 (αφού θα μετρούσε και την τελεία ως χαρακτήρα).
1 Γνώσεις ⇛ Linux: Χαμηλό προς Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
2 Λειτουργικά → Ubuntu 10.04 lucid 64bit (en_US.utf8), Windows 7
3 Προδιαγραφές → Intel Core i5-2500 CPU @ 3.30GHz ‖ RAM 7916 MiB ‖ MSI H67MA-E35 (MS-7680) - MSI MS-7680
4 Κάρτες γραφικών: Intel Sandy Bridge Integrated Graphics Controller [8086:0102] (rev 09)
5 Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 06)
Άβαταρ μέλους
Luke
babeTUX
babeTUX
 
Δημοσιεύσεις: 91
Εγγραφή: 23 Μάιος 2009, 21:31
Εκτύπωση

Re: Μάθημα 1 - Ασκήσεις

Δημοσίευσηαπό sokoban4ever » 03 Αύγ 2009, 22:24

@Luke
Μάλιστα sorry :oops:
:think: Όλοι οι αριθμοί που περνάς στην format είναι τύπου float ( κινητής υποδιαστολής)
Δεν υπάρχει type number (καλό είναι να συνηθίσεις πιο σωστά τα πράματα ώστε να υπάρχει κώδικας επικοινωνίας) υπάρχει όμως float , int κλπ
αν μιλάς για κάτι που δεν είναι string δεν υπάρχει πρόβλημα δες τα link που σου έδωσα σε καλύπτουν και δες και αυτό
http://www.python.org/dev/peps/pep-0378/

πάντως για να μην σε κουράζω πολύ
απλά πρέπει να ορίσεις ρητά ότι είναι float number απλά τοποθετώντας ένα f για τύπο (type) μετά το replacement field του precision
όπως ακριβώς λέει εδώ http://docs.python.org/library/string.h ... i-language
δηλαδή
Κώδικας: Επιλογή όλων
>>> x=13.12345678
>>> type(x)
<class 'float'>
'{0:.1f}'.format(x)
'13.1'
>>> '{0:.2f}'.format(x)
'13.12'
>>> '{0:.3f}'.format(x)
'13.123'
>>> '{0:.4f}'.format(x)
'13.1235'
>>> '{0:.5f}'.format(x)
'13.12346'


και άμα βάλεις g απλά θα μετράει το σύνολο των αριθμών χωρίς την τελεία
δηλαδή
Κώδικας: Επιλογή όλων
'{0:.1g}'.format(x)
'1e+01'  # 10 δηλαδή
>>> '{0:.2g}'.format(x)
'13'
>>> '{0:.3g}'.format(x)
'13.1'
>>> '{0:.4g}'.format(x)
'13.12'
>>> '{0:.5g}'.format(x)
'13.123'


τώρα νομίζω πως σε κάλυψα ;)
άλλη απορία κανείς :D
Τελευταία επεξεργασία από sokoban4ever και 04 Αύγ 2009, 03:02, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: απροσεξίες
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Μάθημα 1 - Ασκήσεις

Δημοσίευσηαπό Luke » 04 Αύγ 2009, 01:36

Ευχαριστώ, με κάλυψες. :thumbup:
Όσο για το παραπάνω:
Spoiler: show
sokoban4ever έγραψε:Δεν υπάρχει type number (καλό είναι να συνηθίσεις πιο σωστά τα πράματα ώστε να υπάρχει κώδικας επικοινωνίας) υπάρχει όμως float , int κλπ

Βασικά το έγραψα έτσι ώστε να κάνω τη διάκριση με αυτό που μου παρέθεσες από τα docs της python:
For non-number types the field indicates the maximum field size - in other words, how many characters will be used from the field content. The precision is not allowed for integer values.
Τέλος πάντων. :mrgreen:
1 Γνώσεις ⇛ Linux: Χαμηλό προς Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
2 Λειτουργικά → Ubuntu 10.04 lucid 64bit (en_US.utf8), Windows 7
3 Προδιαγραφές → Intel Core i5-2500 CPU @ 3.30GHz ‖ RAM 7916 MiB ‖ MSI H67MA-E35 (MS-7680) - MSI MS-7680
4 Κάρτες γραφικών: Intel Sandy Bridge Integrated Graphics Controller [8086:0102] (rev 09)
5 Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 06)
Άβαταρ μέλους
Luke
babeTUX
babeTUX
 
Δημοσιεύσεις: 91
Εγγραφή: 23 Μάιος 2009, 21:31
Εκτύπωση

Re: Μάθημα 1 - Ασκήσεις

Δημοσίευσηαπό sokoban4ever » 04 Αύγ 2009, 02:58

@Luke
Nice :D
Spoiler: show
Off topic:
:oops:
sorry απλά νόμισα ότι είχες μπερδευτεί με τα data types
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Προηγούμενη

Επιστροφή στο Μαθήματα python