2013-08-27 4 views
5

मैं अजगर में एक सीज़र पारी कार्यक्रम बनाया, नीचे देखें:

from string import maketrans 

originalChar = (raw_input("Enter a letter: ")) 
numToInc = int(raw_input("Enter a number: ")) 
code = "" 

for x in originalChar: 
    newChar = (chr(ord(x) + numToInc)) 
    code = code + newChar 

transtab = maketrans(chr(32+numToInc), " ") 
print code.translate(transtab) 

मैं निम्नलिखित कोड शिफ्ट करने के लिए है:

%%[email protected]_$^__#)^)&!_+]!*@&^}@[@%]()%+$&[([email protected]%+%$*^@$^!+]!&_#)_*}{}}!}_]$[%}@[{[email protected]#_^{* 
@##&{#&{&)*%(]{{([*}@[@&]+!!*{)!}{%+{))])[!^})+)$]#{*+^((@^@}$[**$&^{[email protected]#$%)[email protected](& 
+^!{%_$&@^!}$_${)$_#)!({@!)(^}!*^&!$%_&&}&_#&@{)]{+)%*{&*%*&@%$+]!*__(#!*){%&@++ 
!_)^$&&%#+)}[email protected]!)&^}**#!_$([$!$}#*^}$+&#[{*{}{((#$]{[$[$$()_#}[email protected]}^@_&%^*!){*^^_$^ 

आप देख सकते हैं, यह टिप्पणियां हैं।

मैं एक स्ट्रिंग में है कि कोड कैसे करूं? टिप्पणी किसी भी उत्पादन देने से मेरी अजगर स्क्रिप्ट रोकने रहे हैं।

,210

धन्यवाद

उत्तर

4

Tripple यह बोली:

"""%%[email protected]_$^__#)^)&!_+]!*@&^}@[@%]()%+$&[([email protected]%+%$*^@$^!+]!&_#)_*}{}}!}_]$[%}@[{[email protected]#_^{* 
@##&{#&{&)*%(]{{([*}@[@&]+!!*{)!}{%+{))])[!^})+)$]#{*+^((@^@}$[**$&^{[email protected]#$%)[email protected](& 
+^!{%_$&@^!}$_${)$_#)!({@!)(^}!*^&!$%_&&}&_#&@{)]{+)%*{&*%*&@%$+]!*__(#!*){%&@++ 
!_)^$&&%#+)}[email protected]!)&^}**#!_$([$!$}#*^}$+&#[{*{}{((#$]{[$[$$()_#}[email protected]}^@_&%^*!){*^^_$^""" 

ट्रिपल उद्धृत तार कई पंक्तियों अवधि के साथ ही उन में टिप्पणी कर सकते हैं।

+0

धन्यवाद, यह काम करता है। विश्वास नहीं कर सकता मैं कोशिश करने के लिए नहीं सोचा था। बहु लाइन स्ट्रिंग। धन्यवाद iCodez। सही उत्तर के रूप में स्वीकार करेंगे। – BubbleMonster

+0

यदि आपको मनमाने ढंग से इनपुट (केवल इनपुट नमूना दिखाया नहीं गया) को संभालने की आवश्यकता है, तो ट्रिपल-कोट दृष्टिकोण सामान्य रूप से काम नहीं करता है। उदाहरण, यदि कोड में अनुक्रम होते हैं जिन्हें पाइथन से बचने वाले अनुक्रम जैसे '\ n' (newline), '\ u0020' (यूनिकोड स्पेस) या कई अन्य लोगों के रूप में व्याख्या किया जाता है, तो आपको वर्बैटिम, वर्ण-चरित्र-चरित्र संस्करण नहीं मिलेगा मूल कोड आपको ट्रिपल-कोट्स के बाहर एक अग्रणी 'आर' का उपयोग करने की आवश्यकता है। इस व्यवहार के उदाहरण के लिए मेरा जवाब देखें। –

1

चारों ओर ट्रिपल कोट्स के बीच इनपुट पाठ: """your code"""

+0

यदि आपको मनमाने ढंग से इनपुट (केवल इनपुट नमूना दिखाया नहीं गया) को संभालने की आवश्यकता है, तो ट्रिपल-कोट दृष्टिकोण सामान्य रूप से काम नहीं करता है। उदाहरण, यदि कोड में अनुक्रम होते हैं जिन्हें पाइथन से बचने वाले अनुक्रम जैसे '\ n' (newline), '\ u0020' (यूनिकोड स्पेस) या कई अन्य लोगों के रूप में व्याख्या किया जाता है, तो आपको वर्बैटिम, वर्ण-चरित्र-चरित्र संस्करण नहीं मिलेगा मूल कोड आपको ट्रिपल-कोट्स के बाहर एक अग्रणी 'आर' का उपयोग करने की आवश्यकता है। इस व्यवहार के उदाहरण के लिए मेरा जवाब देखें। –

1

ट्रिपल-कोट दृष्टिकोण काम नहीं करेगा यदि आपकी स्रोत स्ट्रिंग में पाइथन से बचने वाले वर्ण हैं। उदाहरण के लिए, अनुक्रम \n का मतलब नई लाइन है, और इसका अर्थ है (सही) एक चरित्र के रूप में, दो नहीं।

आप एक सामान्य समाधान जिसमें सभी अपने इनपुट में उपलब्ध कराई गई पात्रों के रूप में-है पर कब्जा कर लिया जाता है और बिना भागने/व्याख्या चाहते हैं, उद्धरण के बाहर एक प्रमुख r के माध्यम से कच्चे स्ट्रिंग दृष्टिकोण का उपयोग करें:

>>> s = '\n\n\n' 
>>> print len(s) 
3 

बनाम

>>> r = r'\n\n\n' 
>>> print len(r) 
6 

चिंता करने के लिए कोई विशेष मामला नहीं है।

संबंधित मुद्दे