Python学习-Tips

作者: 残阳夕露 | 来源:发表于2018-07-06 00:50 被阅读35次
    查看所有Python相关学习笔记

    此篇文章用于记录学习过程中接触到的零散知识点(包含已归纳到各个模块的知识点)。
    用于自我查询--->>备忘录

    • 开方

      x**2 
      > 等于x的平方
      x**3
      > 等于x的三次方
      
    • 取整

      >>>int(3.44)
      3
      >>> int(3.9)
      3
      
    • 四舍五入

      round(number,digits)
      

      number,要四舍五入的数,digits是要小数点后保留的位数

      • 如果 digits 大于 0,则四舍五入到指定的小数位。
        round(13.2222,1) > 13.2
      • 如果 digits 等于 0,则四舍五入到最接近的整数。
        round(13.2222,0) > 13.0
      • 如果 digits 小于 0,则在小数点左侧进行四舍五入。
        round(13.2222,-1) > 10.0
        round(15.2222,-1) > 20.0
        round(15.2222,-2) > 0.0
      • 如果round函数只有参数number,等同于digits 等于 0。
        round(13.2222) > 13
    • 使用方法修改字符串的大小写

      • upper()将所有字母变为大写输出
      • lower()将所有字母变为小写输出
      • capitalize() 首字母大写,其余小写
      • title() 所有单词首字母大写,其余小写
        >>>s = 'hEllo pYthon'
        >>>print(s.upper())
        >>>print(s.lower())
        >>>print(s.capitalize())
        >>>print(s.title())
        HELLO PYTHON
        hello python
        Hello python
        Hello Python
        
      • Python提供了isupper(),islower(),istitle()方法用来判断字符串的大小写
        >>>print('A'.isupper())
        >>>print('A'.islower())
        >>>print('Python Is So Good'.istitle())
        >>># print('Dont do that!'.iscapitalize())#错误,不存在iscapitalize()方法
        True
        False
        True
        
    • 删除空白【strip-删除,清除】

      • rstrip()删除末尾的空白(包括\t和\n)
      • lstrip()删除头部的空白(包括\t和\n)
      • strip()删除字符串两端的空白(包括\t和\n)
        >>>msg='   python   '
        >>>print('-'+msg+'-')#初始状态
        >>>print('-'+msg.rstrip()+'-')#删除右侧空格
        >>>print('-'+msg.lstrip()+'-')#删除左侧空格
        >>>print('-'+msg.strip()+'-')#删除两侧空格
        -   python   -
        -   python-
        -python   -
        -python-
        
    • 使用方法sort()对列表进行永久排序-按字母排序

      #正序
      >>>nicks = ['zhangsan','lisi','wangwu','zhaoliu']
      >>>print(nicks)#原始状态
      >>>nicks.sort()
      >>>print(nicks)#排序后的状态
      ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
      ['lisi', 'wangwu', 'zhangsan', 'zhaoliu']
      
      #倒序
      >>>nicks = ['zhangsan','lisi','wangwu','zhaoliu']
      >>>print(nicks)#原始状态
      >>>nicks.sort(reverse = True)
      >>>print(nicks)#排序后的状态
      ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
      ['zhaoliu', 'zhangsan', 'wangwu', 'lisi']
      
    • 使用方法sorted()对列表进行临时排序-按字母排序

      >>>nicks = ['zhangsan','lisi','wangwu','zhaoliu']
      >>>print(nicks)#原始状态
      >>>print(sorted(nicks))#临时排序的状态(正序)
      >>>print(sorted(nicks,reverse = True))#临时排序的状态(倒序)
      >>>print(nicks)#使用临时排序后,nicks的状态
      ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
      ['lisi', 'wangwu', 'zhangsan', 'zhaoliu']
      ['zhaoliu', 'zhangsan', 'wangwu', 'lisi']
      ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
      
    • 倒着打印列表,按元素反转列表排序

      >>>nicks = ['zhangsan','lisi','wangwu','zhaoliu']
      >>>print(nicks)#原始状态
      >>>nicks.reverse()#倒转
      >>>print(nicks)#倒转后的状态
      ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
      ['zhaoliu', 'wangwu', 'lisi', 'zhangsan']
      
    • 方法zfill()在数值字符串前填充0

      >>>'12'.zfill(5)
      '00012'
      >>>'-3.14'.zfill(7)
      '-003.14'
      >>>'3.14159265359'.zfill(5)
      '3.14159265359'
      
    • math模块为浮点运算提供了对底层C函数库的访问

      >>> import math
      >>> math.cos(math.pi / 4.0)
      0.70710678118654757
      >>> math.log(1024, 2)
      10.0
      
    • random提供了生成随机数的工具

      >>> import random
      >>> random.choice(['apple', 'pear', 'banana'])
      'apple'
      >>> random.sample(range(100), 10)   # sampling without replacement
      [30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
      >>> random.random()    # random float
      0.17970987693706186
      >>> random.randrange(6)    # random integer chosen from range(6)
      4
      >>>random.randint(1,11) #随机生成一个数(包含开始和结束的数字)
      
    • range

      语法:range([start,]stop[,step=1])
      - 这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的
      - step=1表示第三个参数的默认值是1
      - range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列(包括start参数哦的值,不包括stop参数的值)

      >>> for i in range(4):
      ...     print(i,end=' ')
      ... 
      0 1 2 3 
      >>> for i in range(0,4,2):
      ...     print(i,end=' ')
      ... 
      0 2 
      
    • datetime 模块为日期和时间处理同时提供了简单和复杂的方法。支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。该模块还支持时区处理。

      >>> # dates are easily constructed and formatted
      >>> from datetime import date
      >>> now = date.today()
      >>> now
      datetime.date(2003, 12, 2)
      >>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")
      '12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'
      
      >>> # dates support calendar arithmetic
      >>> birthday = date(1964, 7, 31)
      >>> age = now - birthday
      >>> age.days
      14368
      
    • Python中的split()函数的用法

      • Python中有split()和os.path.split()两个函数,具体作用如下:

        • split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
        • os.path.split():按照路径将文件名和路径分割开
      • 1、split()函数

        语法:str.split(str="",num=string.count(str))[n]

      • 参数说明:

        • str:表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
        • num:表示分割次数。如果存在参数num,则仅分隔成<font color=red>num+1</font> 个子字符串,并且每一个子字符串可以赋给新的变量
        • n:表示选取第n个分片

        注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略

      • splitlines() 以换行符分割字符串

        >>>fh = open('abc.txt')
        >>>flines = fh.read().splitlines()
        >>>lines
        
      • 2、os.path.split()函数

        语法:os.path.split('PATH')

      • 参数说明:

        • PATH指一个文件的全路径作为参数:
        • 如果给出的是一个目录和文件名,则输出路径和文件名
        • 如果给出的是一个目录名,则输出路径和为空文件名
      • 3、分离字符串

        string = "www.gziscas.com.cn"

        • 1.以'.'为分隔符
          >>>print(string.split('.'))
          ['www', 'gziscas', 'com', 'cn']
          
        • 2.分割两次
          >>>print(string.split('.',2))
          ['www', 'gziscas', 'com.cn']
          
        • 3.分割两次,并取序列为1的项
          >>>print(string.split('.',2)[1])
          gziscas
          
        • 4.分割两次,并把分割后的三个部分保存到三个文件
          >>>u1, u2, u3 =string.split('.',2)
          >>>print(u1)
          >>>print(u2)
          >>>print(u3)
          www
          gziscas
          com.cn
          
      • 4、分离文件名和路径

         ```
         >>>import os
         >>>print(os.path.split('/dodo/soft/python/'))
         ('/dodo/soft/python', '')
         >>>print(os.path.split('/dodo/soft/python'))
         ('/dodo/soft', 'python') 
         ```
        
    • 切片赋值

      >>>a = [123,'abc',4.56,['test1','test2']]
      >>>print(a)
      >>>a[1:3] =[1,2]
      >>>print(a)
      [123, 'abc', 4.56, ['test1', 'test2']]
      [123, 1, 2, ['test1', 'test2']]
      
      
    • 字符串对象的常用方法

      • count 计算字符串中包含的多少个指定的子字符串
        >>> '123 123 789'.count('123')
        2
        
      • endswith 检查字符串是否以指定的字符串结尾
        >>>'139 123 789'.endswith('89')
        True
        
      • startswith 检查字符串是否以指定的字符串开头
        >>>'185 123 789'.startswith('123')
        False
        
      • find 返回指定的子字符串在字符串中出现的位置
        >>> '12345678'.find('4566')
        3
        
        • 如果有多个,返回第一个的位置
          >>>'ok,good,name'.find(',')
          2
          
        • 还可以指定从什么位置开始查找
          >>>'ok,good,name'.find(',',3)
          7
          
        • isalpha 检查字符串中都是字母
          >>>'abc1'.isalpha()
          False
          
        • isdigit 检查字符串中是否都是数字
          >>>'abc1'.isdigit()
          False
          
        • str.join 将sequence类型的参数的元素字符串合并(连接)到一个字符串,string作为分隔符
          >>>';'.join(['i','love','you'])
          i;love;you
          >>>''.join(['i','love','you'])
          iloveyou
          >>>b= ','
          >>>a=b.join(['i','love','you'])
          >>>print(a)
          i,love,you
          
        • split讲字符串分割为几个子字符串,参数为分隔符,返回结果存在一个list里
          >>>'i like play football'.split(' ') # 以空格作为分隔符
          ['i', 'like', 'play', 'football']
          
        • replace 替换字符串里面指定的子字符串
          >>>a = 'Tom is a dog. Snoopy is a dog'
          >>>b = a.replace('dog','pig')
          >>>print(a)
          >>>print(b)
          Tom is a dog. Snoopy is a dog
          Tom is a pig. Snoopy is a pig
          
    • 格式化

      • % 数字代表长度,正数是右对齐,负数是左对齐
        >>>vs = [('hasen1',89898),('hasen1112',4444)]
        >>>fs = '''
        >>>%-10s salary: %10d $
        >>>%-10s salary: %10d $
        >>>'''
        >>>print(fs % (vs[0][0],vs[0][1],vs[1][0],vs[1][1]))
        hasen1     salary:      89898 $
        hasen1112  salary:       4444 $  
        
      • format
        • 基本格式
        >>>print('{}'.format(56))
        >>>print('{:10}'.format(56)) # 右对齐
        >>>print('{:<10}'.format(56)) # 左对齐
        >>>print('{:010}'.format(56)) #补0
        56
                56
        56        
        0000000056
        
        • 如果字符串内本身含有{},则需要用两个
        >>>print('{} 他说{{你好}}'.format(123.222))
        123.222 他说{你好}
        
        • 简易格式(python 3.6以后)
        >>>name = 'hasen'
        >>>print(f'he said his name is {name}')
        he said his name is hasen
        
        >>>print(f'{123.444:.2f}')
        123.44
        
    • which python(which python3) 查询python的path

    • tell 当前指针位置
      >>>fh = open('abc.txt')
      >>>fh.tell()
      0
      
    • seek 移动指针
      >>>fh = open('abc.txt')
      >>>fh.tell()
      0
      >>>fh.seek(2) #向后移动两个位置
      >>>fh.tell()
      2
      >>>fh.seek(2,0) #0-从开始位置向后移动两个位置
      >>>fh.tell()
      2
      >>>fh.seek(2,1) #1-从当前位置向后移动两个位置
      >>>fh.tell()
      4
      >>>fh.seek(-2,2) #2-从结束位置向前移动两位
      >>>fh.tell()
      
    • 字典(dict)

      • get方法:如果查不到则返归指定的值
      >>>dict2 =  {'name':'jack','age':40}
      >>>dict2['age']
      40
      >>>dict2.get('age1',10)
      10
      
      • 取字典里的值
      for name in dict #取出key
      for name,info in dict.items() #取出key和value
      for keys in dict.keys() #取出key
      for values in dict.values()#取出value
      
      • 清空字典
      dict.clear()# 清除内容
      dict = {} # 定义为一个新的字典,如果是在其他处调用,则原dict不变
      
      • 增加另一个dict的内容
      >>>d = {1:1,2:2,3:3}
      >>>d
      {1: 1, 2: 2, 3: 3}
      >>>d.update({4:4,5:5})
      >>>d
      {1: 1, 2: 2, 3: 3, 4: 4, 5: 5}
      
    • pip使用

      • 安装 pip install xxx
      • 卸载 pip uninstall xxx
      • 更新 pip install xxx -u
    • 函数注释

      def count(info):
          '''
          :param info: 格式:'姓名1,:age1,姓名2:age2,...'
          :type info:str
          :return: (maxNumAge, maxNum)
          :rtype:list
          计算字符串内哪个年龄的人数最多,并返回人数最多的年龄和该年龄的人数
          '''
          pass
      a = 'hasen1 :13,tom mark : 33,hasen3:13,hasen4:13,hasen5:33,   hasen5:40'
      count(a)
      
      
      • :param a -->指明参数为a
      • :type a:int -->指明参数a的类型为int
      • :return:a*2 -->指明返回的内容
      • :rtype:int -->指明返回的类型
      • 调用函数时,按住ctrl,鼠标指向调用参数的位置可以查看该函数的参数个数、类型,以及返回类型
      显示内容如下:
      ---def count(info)
      ---inferred type:(info:str) -> list
      
    • 调试
      • 方法一:IDE debug

        常用于开发环境中:
        方便、快捷;
        查看变量、表达式的值

        1. 设置断点
        2. 执行:Debug 'xx'(执行到第一个断点前面的语句为止(断点处语句还未执行到))
        3. 继续执行
          • Resume Program(F9)继续执行(执行到下一个断点前)
          • Step Over(F8)单步执行(不进入循环体,每次执行完本行)
          • Step Into(F7)单步执行(进入循环体)
          • Step Into My Code(Alt+Shift+F7)单步执行(进入循环体,仅进入我的代码)
          • Step Over(Shift+F8)单步执行(如果已进入循环体内,按此按钮可提前执行完循环并跳出循环体)
          • Stop 'xxx'(Ctrl+F2)结束debug
      • 方法二:打印信息(pprint)(日志信息)

        常用在没有IDE的时候:临时任务;生产环境(bug不方便重现;用log方法,tail/tailf查看日志文件)

        # pprint 支持打印列表和字典
        >>>from pprint import pprint
        >>>a = [1,2,3,4,6]
        >>>pprint(a)
        
        
    • 判断数据类型
      • type 查询类型
      • isinstance(a,b) 判断类型(推荐使用)a是否为b类型,返回bool型(True or False)
      >>>type(3)
      <class 'int'>
      >>>isintance(3,int)
      True
      >>>isintance(3,str)
      False
      
    • 条件判断
      • 三元操作符

        语法:x if 条件 else y -->如果条件为真则结果为x 否则为y

        >>>a,b = 3,4
        >>>small = a if a<b else b
        >>>print(small)
        3
        
      • 断言(assert)

        当此关键字后面的条件为假时,程序自动崩溃并抛出AssertionError的异常

        一般来说我们可以用Ta在程序中植入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

        >>>assert 3>4
        AssertionError
        
    • 链接mysql数据库
      import pymysql.cursors
      
      connect = pymysql.Connect(
          host='199.09.09.99',
          port =3306,
          user='root',
          password='root',
          database='healthywalk'
      )
      cursor = connect.cursor()
      cursor.execute('select answers from questionnaire ')
      value= cursor.fetchall()
      print(value)
      
    • 调用默认浏览器打开某个网址
      import webbrowser
      webbrowser.open('http://www.baidu.com')
      

    相关文章

      网友评论

      本文标题:Python学习-Tips

      本文链接:https://www.haomeiwen.com/subject/rynmuftx.html