Βασικά, ζητώ από το χρήστη να εισάγει μια συμβολοσειρά κειμένου στην κονσόλα, αλλά η συμβολοσειρά είναι πολύ μεγάλη και περιλαμβάνει πολλά διαλείμματα γραμμής. Πώς θα μπορούσα να πάρω τη συμβολοσειρά του χρήστη και να διαγράψω όλα τα διαλείμματα γραμμής για να την κάνω μια ενιαία γραμμή κειμένου. Η μέθοδός μου για την απόκτηση της συμβολοσειράς είναι πολύ απλή.
string = raw_input("Please enter string: ")
Υπάρχει κάποιος διαφορετικός τρόπος με τον οποίο θα έπρεπε να αποσπάσω τη συμβολοσειρά από τον χρήστη; Χρησιμοποιώ την Python 2.7.4 σε Mac.
Υ.Γ. Σαφώς είμαι noob, οπότε ακόμα και αν μια λύση δεν είναι η πιο αποτελεσματική, αυτή που χρησιμοποιεί την πιο απλή σύνταξη θα εκτιμηθεί.
Πώς εισάγετε τα διαλείμματα γραμμής με την raw_input
; Αλλά, μόλις έχετε μια συμβολοσειρά με κάποιους χαρακτήρες που θέλετε να ξεφορτωθείτε, απλά αντικαταστήστε
τους.
>>> mystr = raw_input('please enter string: ')
please enter string: hello world, how do i enter line breaks?
>>> # pressing enter didn't work...
...
>>> mystr
'hello world, how do i enter line breaks?'
>>> mystr.replace(' ', '')
'helloworld,howdoienterlinebreaks?'
>>>
Στο παραπάνω παράδειγμα, αντικατέστησα όλα τα κενά. Η συμβολοσειρά '\n'
αντιπροσωπεύει τις νέες γραμμές. Και το \r
αντιπροσωπεύει τις επιστροφές χαρακτήρων (αν είστε σε windows, μπορεί να τα λαμβάνετε αυτά και μια δεύτερη replace
θα τα χειριστεί για εσάς!).
βασικά:
# you probably want to use a space ' ' to replace `\n`
mystring = mystring.replace('\n', ' ').replace('\r', '')
Σημειώστε επίσης, ότι είναι κακή ιδέα να ονομάζετε τη μεταβλητή σας string
, καθώς αυτό επισκιάζει την ενότητα string
. Άλλο ένα όνομα που θα απέφευγα, αλλά θα ήθελα πολύ να χρησιμοποιώ μερικές φορές: file
. Για τον ίδιο λόγο.
Μπορείτε να δοκιμάσετε να χρησιμοποιήσετε την αντικατάσταση συμβολοσειράς:
string = string.replace('\r', '').replace('\n', '')
ενημερώθηκε με βάση το σχόλιο του Xbello
:
string = my_string.rstrip('\r\n')
Διαβάστε περισσότερα εδώ