zoukankan      html  css  js  c++  java
  • Python 日常学习

    习惯了java的思想。用java的思想来获取python元组中的数据。结果出错了。

    [python] view plain copy
     
    1. yuanzu_s = ("one", "two", "three", "four",);  
    2. print(yuanzu_s[0]);  
    3. print(len(yuanzu_s));  
    4. print(len(yuanzu_s[0]));  
    5. i = 0;  
    6. for i in yuanzu_s:  
    7.     print(len(yuanzu_s[i]));  

    报一个这样的错误:

    [python] view plain copy
     
    1. Traceback (most recent call last):  
    2.   File "D:USERNetBeansProjectsOnePythonTestsrcOnePythonTest.py", line 65, in <module>  
    3.     print(len(yuanzu_s[i]));  
    4. TypeError: tuple indices must be integers  
    5.    

    纠结一会。在JAVA的思想下,逐个去打印某个数组里的数据。只需拿某个数组的下标即可。

    没料到在python中,既然不行。。

    后来改成了下面的代码 :

    [python] view plain copy
     
    1. yuanzu_s = ("one", "two", "three", "four",);  
    2. print(yuanzu_s[0]);  
    3. print(len(yuanzu_s));  
    4. print(len(yuanzu_s[0]));  
    5. i = 0;  
    6. for i in yuanzu_s:  
    7.     print(i);  

    这样就没有错了。。

    呵呵,完全新手帖,我刚自学python没多久。作一个标记。

    方法1:自定义异常

    [python] view plain copy
     
     print?
    1. # -*- coding:utf-8 -*-  
    2.   
    3. """ 
    4. 功能:python跳出循环 
    5. """  
    6. # 方法1:自定义异常  
    7.   
    8.   
    9. class Getoutofloop(Exception):  
    10.     pass  
    11. try:  
    12.     for i in range(5):  
    13.         for j in range(5):  
    14.             if i == j == 2:  
    15.                 raise Getoutofloop()  
    16.             else:  
    17.                 print i, '----', j  
    18. except Getoutofloop:  
    19.     pass  


    方法2:将循环封装为函数,return

    [python] view plain copy
     
     print?
    1. # -*- coding:utf-8 -*-  
    2.   
    3. """ 
    4. 功能:python跳出循环 
    5. """  
    6. # 方法2:封装为函数,return  
    7.   
    8.   
    9. def test():  
    10.     for i in range(5):  
    11.         for j in range(5):  
    12.             if i == j == 2:  
    13.                 return  
    14.             else:  
    15.                 print i, '----', j  
    16.   
    17. test()  

    方法3:用for...else...语句

    [python] view plain copy
     
     print?
    1. # -*- coding:utf-8 -*-  
    2.   
    3. """ 
    4. 功能:python跳出循环 
    5. """  
    6. # 方法2:for...else...用法,用于跳出指定循环层  
    7.   
    8. for i in range(5):  
    9.     for j in range(5):  
    10.         for k in range(5):  
    11.             if i == j == k == 3:  
    12.                 break  
    13.             else:      
    14.                 print i, '----', j, '----', k  
    15.         else:        # else1  
    16.             continue  
    17.         break        # break1  
    18.     else:            # else2  
    19.         continue  
    20.     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举例

    [python] view plain copy
     
     print?
      1. # -*- coding:utf-8 -*-  
      2.   
      3. """ 
      4. 功能:for...else语句 
      5. """  
      6.   
      7. for i in range(5):  
      8.     print i  
      9. else:  
      10.     print u"循环完整执行一次。"  
      11.   
      12. for j in range(6):  
      13.     for k in range(6):  
      14.         print j, k  
      15.         if j == 3:  
      16.             print u"内重循环即将被break"  
      17.             break  
      18.     else:  
      19.         print u"内重循环完整执行一次。"  
      20. else:  
      21.     print u"外重循环完整执行一次。"  
  • 相关阅读:
    TCP协议的三次握手、四次挥手
    .NET Framework 3.5 安装
    grep命令总结
    线性回归
    K-Mean聚类算法
    Logistic回归
    朴素贝叶斯
    Decision Tree
    KNN
    GCC for Win32开发环境介绍
  • 原文地址:https://www.cnblogs.com/zqyanywn/p/7495662.html
Copyright © 2011-2022 走看看