我是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';
}
答案 0 :(得分:5)
关于你的第一个问题:
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'是一个列表而不是一个数组