3

私はPythonにまったく慣れておらず、C++のこのコードスニペットを持っています:

do
    {
    cout << "Make sure the number of digits are exactly 12 : ";
    cin >> input ;
    } while((input.length()) != 12 );

この部分をPythonに変更するにはどうすればよいですか?私はこれまでこれを試しましたが、正しい構文またはロジックフローがわかりません。これは私が持っているものです:

while True:
  print("Make sure the number of digits are exactly 12 : ")
  input = raw_input()
  check = len(input)
  if check != 12
  break

上記の部分は解決されました!

また、: inputである別のc++スニペットは文字列です

for (int i = 0; i < 12 ; i++)
    {
     code[i] = input.at(i) - '0';
    }

この部分をPythonコードに変更する方法がわかりません

code[i] = input.at(i) - '0';

だから、私が抱えている問題は、配列を初期化する方法がわからないことです

int code[12] ;

私がこのコードを実行できるように、Pythonでどのようにすべきですか?与えられたように:

   int code[12] ;
    for (int i = 0; i < 12 ; i++)
      {
        code[i] = input.at(i) - '0';
      }
4

3 に答える 3

5

まず、do..whileはPythonではありません

あなたの最初の質問のために:

while True:
  print "Make sure the number of digits are exactly 12 : "
  x = input()

  if len(str(x)) == 12:
    break

Pythonは空白に敏感であり、メソッドは角かっこではなくタブとスペースで管理されます。また、コロンがありませんでした。

2番目の質問では、コードは文字を取得して数字に変換しているように見えます。型キャストを簡単に行うことができます。

for i in range(12):
  code[i] = int(x[i])
于 2013-02-08T00:03:25.230 に答える
3

最初のコードスニペットでは、次を変更できます。

print("Make sure the number of digits are exactly 12: ")
input = raw_input()

に:

input = raw_input("Make sure the number of digits are exactly 12: ")

checkまた、変数は必要ありません。代わりに、次のようにします。

if len(input) == 12:
  break

IFステートメントの後に(等式テストもである必要があります)を含める方法に注意して:ください。次に、条件がである場合、決定が実行された後にさらにインデントされたもの。==!=True

int()2番目のコードスニペットでは、 and関数を使用して整数から文字列(および文字列から整数)に変換できstr()ます。例えば

>>> a = '012345678912'
>>> len(a) == 12
True
>>> b = int(a)
>>> print b
12345678912
>>> str(b)
'12345678912'
于 2013-02-08T00:03:09.320 に答える
1
do
    {
    cout << "Make sure the number of digits are exactly 12 : ";
    cin >> input ;
    } while((input.length()) != 12 );

int code[12] ;
    for (int i = 0; i < 12 ; i++)
        {
        code[i] = input.at(i) - '0';
        }

に変換されます

while True:
    input = raw_input("Make sure the number of digits are exactly 12 : ")
    if len(input) == 12:
         break
code = []
for ind in range(0,12):
    code.append(ord(input[ind]) - ord('0'))

数字の文字列をPythonの構成値に解析する簡単な方法があります。たとえば、

code.append(int(input[ind]))

私が提供した翻訳は、コードの目的に依存しません[文字などを含めることができます]

Pythonの変数「code」はもちろん配列ではなくリストです

于 2015-06-05T13:11:20.897 に答える