C ++到python初学者

时间:2013-02-07 23:57:29

标签: python python-3.x

我是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

以上部分已解决!

另外,另一个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';
      }

3 个答案:

答案 0 :(得分:5)

首先,do..while is not in Python

关于你的第一个问题:

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

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

Python对空格敏感,并且使用制表符和空格而不是括号来管理方法。你也错过了一个冒号。

对于您的第二个问题,代码看起来就像您正在拍摄角色并将其转换为数字。你可以简单地做一个类型转换:

for i in range(12):
  code[i] = int(x[i])

答案 1 :(得分: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()str()函数将整数转换为字符串(以及字符串转换为整数)。 E.g。

>>> a = '012345678912'
>>> len(a) == 12
True
>>> b = int(a)
>>> print b
12345678912
>>> str(b)
'12345678912'

答案 2 :(得分: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'是一个列表而不是一个数组