赞
踩
1 寻找平衡点:
假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点
numbers = [1,3,5,7,8,25,4,20,29];
sum = 0;
for num in numbers:
sum += num;#求出数组的和
for index in range(len(numbers)):
former = 0;
after = 0;
i = 0;
for i in range(index):#求出当前循环点的前半段数据
former += numbers[i];
after = sum - former - numbers[index];#用和减去当前数和前半部分和
if(former == after):
print ("The balance point is:",numbers[index]);
由于是初学,所以第一个程序遇到问题是难免的,谈一下我遇到的问题:
(1)for循环中的递增迭代: for index in range(len(numbers)): 对于数组的索引迭代,需要用到len()求数组的长度,用range进行索引迭代。
for i in range(index):在这句循环的时候,本来我的意思是i 递增到index 循环,但是非常不幸运,编译不过:
Traceback (most recent call last):
File "BalancePoint.py", line 15, in <module>
for i in index:
TypeError: 'int' object is not iterable
查了下,原来不能直接用int进行迭代,而必须加个range.
2 删除list里面的重复元素:
方法一:直接将list 转变为set
a = [1,2,3,3,4,5,1,1]
a = list(set(a)) # ? set ?????
print (a,"/n");
shit,我居然还没学到set,这是在网上看到的方法。NND,我很郁闷的说!我用的是传统的方法,折腾死我了,不得不说,很久没写代码了,生疏了!
方法二: 就算排序,然后逐个比较,鉴于del会直接把元素删除,设置了个flag数组来标记该删除的元素:
NameList = ["Carol","Andy","Terry","Feng","Carol","Jie","Terry"];
NameList.sort();
Flag=[];
for index in range(len(NameList)):
Flag.insert(index,0);# = 0;
index =0;
secondIndex=0;
for index in range(len(NameList)-1):
inx = index+1;
for secondIndex in NameList[index+1:]:
if (NameList[index]== secondIndex):
#del NameList[secondIndex];
#Flag.insert(secondIndex,1);
Flag[index] = 1;
inx = inx +1;
print("/n");
print (Flag,"/n");
index = 0;
end = range(len(NameList));
for index in end:
if (Flag[index] ==1):
del NameList[index];
#print (index,"/n");
print (NameList,"/n");
说一下我遇到的问题:
第一个,定义一个和原来list长度相同的全为零的数组。
Flag=[];
for index in range(len(NameList)):
Flag.insert(index,0);# = 0;
这个写就可以了,比较郁闷的是最开始没定义Flag[].到后面使用的时候一直报错。
第二个: for secondIndex in NameList[index+1:]:
我最开始是这么写的 for secondIndex in NameList:,然后再这句话前头赋值 secondIndex=NameList[index+1];
然后一直就debug不对,seondIndex直接从第一个元素开始,最开始还以为是涉及全局变量和局部变量的问题,还使了global,结果根本就不是,我的理解是 secondIndex在这里直接被赋值了,因为in NameList是从最初开始循环的,my lady gaga!我很郁闷!
第三个: 这个不算问题,主要是还是对语法不是很熟悉,才开始学,最开始饮用list里面的元素我是这么写的NameList(index+1);
区别就在于()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。