习惯了java的思想。用java的思想来获取python元组中的数据。结果出错了。
- yuanzu_s = ("one", "two", "three", "four",);
- print(yuanzu_s[0]);
- print(len(yuanzu_s));
- print(len(yuanzu_s[0]));
- i = 0;
- for i in yuanzu_s:
- print(len(yuanzu_s[i]));
报一个这样的错误:
- Traceback (most recent call last):
- File "D:\USER\NetBeansProjects\OnePythonTest\src\OnePythonTest.py", line 65, in <module>
- print(len(yuanzu_s[i]));
- TypeError: tuple indices must be integers
纠结一会。在JAVA的思想下,逐个去打印某个数组里的数据。只需拿某个数组的下标即可。
没料到在python中,既然不行。。
后来改成了下面的代码 :
- yuanzu_s = ("one", "two", "three", "four",);
- print(yuanzu_s[0]);
- print(len(yuanzu_s));
- print(len(yuanzu_s[0]));
- i = 0;
- for i in yuanzu_s:
- print(i);
这样就没有错了。。
呵呵,完全新手帖,我刚自学python没多久。作一个标记。
方法1:自定义异常
- # -*- coding:utf-8 -*-
- """
- 功能:python跳出循环
- """
- # 方法1:自定义异常
- class Getoutofloop(Exception):
- pass
- try:
- for i in range(5):
- for j in range(5):
- if i == j == 2:
- raise Getoutofloop()
- else:
- print i, '----', j
- except Getoutofloop:
- pass
方法2:将循环封装为函数,return
- # -*- coding:utf-8 -*-
- """
- 功能:python跳出循环
- """
- # 方法2:封装为函数,return
- def test():
- for i in range(5):
- for j in range(5):
- if i == j == 2:
- return
- else:
- print i, '----', j
- test()
方法3:用for...else...语句
- # -*- coding:utf-8 -*-
- """
- 功能:python跳出循环
- """
- # 方法2:for...else...用法,用于跳出指定循环层
- for i in range(5):
- for j in range(5):
- for k in range(5):
- if i == j == k == 3:
- break
- else:
- print i, '----', j, '----', k
- else: # else1
- continue
- break # break1
- else: # else2
- continue
- break # break2
方法3解释:
(1)break能跳出某一重循环(该重循环的本次及剩余次数都不再执行),但并不能跳出该重循环的其他外重循环。
例如,最内第3重循环break之后,程序返回第2重循环继续执行第2重的下一次,然后第3重循环将再次执行。
(2)continue是跳过某一重循环的某一次,但该重循环的剩余次数会继续执行。
(3)for...else:其中else块中的语句将在for循环完整执行过之后才会被执行,如果for循环被break,则else块将不会被执行。
(4)方法3中,当第3重循环满足i == j == k ==3时,第3重循环被break,则并列的else1将跳过,执行break1,导致第2重循环
被终止,则else2被跳过,执行break2,导致第1重循环被终止。
最终实现跳出整个循环。
for...else加break举例:
- # -*- coding:utf-8 -*-
- """
- 功能:for...else语句
- """
- for i in range(5):
- print i
- else:
- print u"循环完整执行一次。"
- for j in range(6):
- for k in range(6):
- print j, k
- if j == 3:
- print u"内重循环即将被break"
- break
- else:
- print u"内重循环完整执行一次。"
- else:
- print u"外重循环完整执行一次。"