#python+java#同样功能的代码两种语言实现

概述:设置两个数组/列表,列表a是[1,2,3],列表b是[‘a‘,‘b‘,‘c‘],把他们一对一对打印出来,但不打印“3:c”这对。

python版:

‘‘‘
Created on 2014-11-2
@author: Administrator
‘‘‘
class MyArray:
    def __init__(self):
        self.a = range(1,4)
        self.b = [‘a‘,‘b‘,‘c‘]
    def getValue(self):
        tmp = {}
        for i in self.a:
            tmp[str(i)] = self.b[i-1]
        return tmp
a = MyArray()
x = a.getValue()
for i in x:
    if i == ‘3‘:continue
    print "%s is :%s" % (i,x[i])


java版:

public class MyArray {
public static void main(String[]args){
int[] a = new int[3];
char[] b = new char[]{‘a‘,‘b‘,‘c‘};
for(int i=0;i<3;i++){
a[i] = i+1;
}
for(int i=0;i<b.length;i++){
if(i==2){
continue;
}
System.out.println(a[i]+" is :"+b[i]);
}
}
}


关于python版中的字典格式化:

参考:

In [1]: phonebook = {:123, :456, :789}

In [2]:  % phonebook
Out[2]:

发觉不能用:"%s is : %(KEY)" % (STRING,DICT)这样格式的字典格式化字符串,而且在前例中,字典的键必须为字符串,否则无法格式化。

在写python版时,突然发现自己忘记了一件事:return会使函数返回值并令迭代或循环停止,所以这样的代码是有问题的:

def error(list):
  for i in list:
    if xxx:return xxx            #只能输出一个值


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。