zoukankan      html  css  js  c++  java
  • 2017.07.19 Python网络爬虫之Python语句

    1.if else 语句:非此即彼

    if 判断条件1:

      执行语句1

    elif 判断条件2:

      执行语句2

    elif 判断条件3:

      执行语句3

    else:

      执行语句4

    编写一个testIfRamainder7.py 熟悉一下if语句:

    # !usr/bin/env python
    # -*- coding:utf-8 -*-


    def isEvenNum(num):
    if num%7==0:
    print(u"%d 可以被7整除" %num)
    else:
    print(u"%d 不可以被7整除" %num)

    if __name__=='__main__':
    numstr=raw_input("请输入一个整数:")
    try:
    num=int(numstr)
    except ValueError:
    print(u"输入有误,要求输入一个整数")
    exit()

    isEvenNum(num)


    执行结果如下:

    2.有限循环---for:

    for Var in Sequence:

      执行语句

    编写一个testForGauss.py熟悉for循环语句:

    # !usr/bin/env python
    # -*- coding:utf-8 -*-

    def cumulative(num):
    sum=0
    for i in xrange(1,num+1):
    sum+=i
    return sum

    def main():
    while True:
    print(u"========================")
    print(u"输入exit退出程序")
    str_num=raw_input("从1累加到:")
    if str_num=='exit':
    break
    try:
    sum=cumulative(int(str_num))
    except ValueError:
    print(u"除非退出输入exit,只能输入数字")
    continue
    print(u"从1累加到%d的总数是%d " %(int(str_num),sum))

    if __name__ == '__main__':
    main()


    执行结果如下:

    ***仔细看下for循环的表达式,Sequence是一个序列,说明for循环不仅仅适用于数字形式的循环,比如可以将文件放入列表作为一个序列,然后对文件进行操作

    3.无限循环--while:只要不满足某个条件,就一直循环下去直到满足条件为止:

    while Boolean expression:

      执行语句

    编写一个testWhileSimulateLogin.py 模拟Linux终端登录:

    # !usr/bin/env python
    # -*- coding:utf-8 -*-

    import getpass

    class FakeLogin(object):
    def __init__(self):
    self.name='king'
    self.password='haha,no pw'
    self.banner='hello,you have login system'
    self.run()

    def run(self):
    """仿Linux终端登录窗口"""
    print(u"不好意思,只有一个用户king")
    print(u"偷偷告诉你,密码是6个8欧")
    while True:
    print(u"Login:king")
    pw=getpass.getpass("Password: ")

    if pw == '88888888':
    print(u"%s" %self.banner)
    print(u"退出程序")
    exit()
    else:
    if len(pw)>12:
    print(u"密码长度应该小于12")
    continue
    elif len(pw) <6:
    print(u"密码长度大于6才对")
    continue
    else:
    print(u"可惜,密码错误。继续猜!!")
    continue
    if __name__ == '__main__':
    f1=FakeLogin()

    一开始运行失败啊:getpass函数不起作用

    解决方法:不能在pycharm上运行,得在终端运行:

    4.中断循环--continue,break:continue和break语句只能用于循环之中,只对循环起作用;

    continue的作用是,从continue语句开始到循环语句结束,之间所有的循环语句不执行,直接从下一次循环重新开始

    break语句的作用是,退出循环,该循环结束

    编写一个随机猜数字的游戏,熟悉continue和break语句:

    # !usr/bin/env python
    # -*- coding:utf-8 -*-

    import random

    class GuessNum(object):
    """这个类用于猜随机数"""
    def __init__(self):
    print(u"随机产生一个0-100的随机数")
    self.num=random.randint(0,101)
    self.guess()

    def guess(self):
    i=0
    while True:
    print(u"猜这个随机数,0-100")
    strNum=raw_input("输入你要猜的数字:")
    i+=1
    try:
    print("******************************")
    if int(strNum) <self.num:
    print(u"你猜的数字太小了")
    continue
    elif int(strNum) >self.num:
    print(u"你猜的太大了")
    continue
    else:
    print(u"你总算猜对了")
    print(u"你一共猜了%d次" %i)
    break
    except ValueError:
    print(u"只能输入数字,继续猜吧!!")
    continue
    print(u"如果没有continue或break,就会显示这个,不信试试")


    if __name__ == '__main__':
    gn=GuessNum()


    执行结果如下:

    5.异常处理---tyr  except:用try来测试可能遇出现异常的语句,except来处理可能出现的异常

    try:

      语句

    except [exception,[data...]]:

       Do something

    except [exception,[data...]]:

      Do something

    except [exception,[data...]]:

      Do something

    因为同一语句可能出现不同的异常,所以也会给出不同的解决方法,编写一个testTryInput.py熟悉一下异常处理吧:

    # !usr/bin/env python
    # -*- coding:utf-8 -*-

    class TryInput(object):
    def __init__(self):
    self.len=10
    self.numList=self.createList()
    self.getNum()

    def createList(self):
    print(u"创建一个长度为%d的数字列表" %self.len)
    numL=[]
    while len(numL)<10:
    n=raw_input("输入一个整数:")
    try:
    num=int(n)
    except ValueError:
    print(u"输入错误,要求输入一个整数")
    continue
    numL.append(num)
    print(u"现在的列表是:")
    print(numL)
    return numL

    def getNum(self):
    print(u"当前列表为:")
    print(self.numList)
    inStr=None
    while inStr!='EXIT':
    print(u"输入EXIT退出程序")
    inStr=raw_input("输入列表下标[-10,9]:")
    try:
    index=int(inStr)
    num=self.numList[index]
    print(u"列表中下标为%d的值为%d" %(index,num))
    except ValueError:
    print(u"输入错误,列表下标是一个整数")
    continue
    except IndexError:
    print(u"下标太大,访问列表超出范围")
    continue

    if __name__ == '__main__':
    ti=TryInput()

    执行结果如下:

    
    
    

     6.导入模块---import:前边写的一个程序,后面就可以将它当成一个模块导入现在的程序中,取其精华去其糟粕的使用,代码重用性高的可怕,而且python还可以根据需求将C,C++,JAVA等程序作为模块,随意取用。

    #同时导入多个模块

    import module[,module2[,.........moduleN]]

    #导入模块中的某个函数,类,变量

    from modname import name[,name2[,..........nameN]]

     #导入某个模块中所有

    from modname import *

    自己写一个模块,然后导入:testImportColorPrint.py:

    # !usr/bin/env python
    # -*- coding:utf-8 -*-

    import sys

    class ColorPrint(object):
    def __init__(self,color,msg):
    self.color = color
    self.msg = msg
    self.cPrint(self.color,self.msg)

    def cPrint(self,color,msg):
    colors={'black':'33[1;30;47m','red':'33[1;31;47m','green':'33[1;32;47m','yellow':'33[1;33;47m','blue':'33[1;34;47m','white':'33[1;37;47m'}
    #注意这里[]没有“]”的存在,才是正确的
         if color not in colors.keys():
    print(u"输入的颜色暂时没有,按照系统默认配置的颜色打印")
    else:
    print(u"输入的颜色有效,开始彩色打印")
    print(u"%s" %colors[color])
    print(msg)
    print(u"33[0m")

    if __name__ == '__main__':
    cp=ColorPrint(sys.argv[1],sys.argv[2])

     必须在终端执行,执行结果如下:

    导入testImportColorPrint模块到其他程序中使用:

    # !usr/bin/env python
    # -*- coding:utf-8 -*-

    from testImportColorPrint import ColorPrint

    if __name__ == '__main__':
    p_black=ColorPrint('black','我是黑色打印')
    p_black=ColorPrint('red','我是红色打印')
    p_black=ColorPrint('green','我是绿色打印')
    执行结果如下(不用在终端执行):

     *****将Python程序当成模块导入的先决条件是,这两个程序在同一目录下,或者将模块化的程序的路径加入到Python的系统路径中

    
    
    
    
    
    
    
    
    
    
  • 相关阅读:
    终结篇:MyBatis原理深入解析(二)
    Centos7 安装clamav杀毒
    jenkins 自动化部署
    docker 安装redis
    linux CentOS7 安装字体库-转
    docker 安装jenkins
    linux 下安装docker
    linux 下安装redis
    linux 下mongo 基础配置
    Linux下MongoDB安装和配置详解
  • 原文地址:https://www.cnblogs.com/hqutcy/p/7207537.html
Copyright © 2011-2022 走看看