为什么Python不在列表中存储0?

时间:2018-10-15 12:31:26

标签: python python-3.x

我有以下代码,它使用输入数字,将第一位数字乘以3,然后打印出第一位数字。当我输入023时,它得到的是6而不是0。为什么?

#include <stdio.h>

void init_tableau2D(int **t ,int ligne ,int colonne){                                                                                      
int i,j;       

for(i=0;i<ligne;i++){                                                                                                                    
  for(j=0;j<colonne;j++){                                                                                                                
        printf("%d\n",t[0][0]);                                                                                                              
    }                                                                                                                                      
}                                                                                                                                        
}

int main()
{
int tab[3][2]={{5,8},{11,6},{37,45}}; 
/* Here I have allocated staticly a 2D table*/
init_tableau2D(tab,3,2); 

return 0;
}

3 个答案:

答案 0 :(得分:2)

您正在做

a=int(input())

So if input() = '023', int('023') will be 23. So a=23

b=str(a) => b='23'

int(b[0]) => c=2*3=6

您应该这样做:

 a=input()

然后

c=int(a[0])*3

答案 1 :(得分:1)

如果您想保留输入的所有数字,则不应将输入内容转换为int

a=input('Enter a number: ') 
c=int(a[0])*3 
print(c)

如果输入023,则返回0

答案 2 :(得分:1)

您可以使用while循环不断询问用户仅数字输入,直到用户输入数字为止,并且您应使用list()构造函数将数字转换为列表:

while True:
    a = input('Enter digits: ')
    if a.isdigit():
        break
    print('Please enter only digits.')
b=list(a)
c=int(b[0])*3
print(c)