zoukankan      html  css  js  c++  java
  • Python的基础知识,不同于其他编程语言

    1.字符串拼接可以不使用+号

    name = "this " "is " "a " "string"

    2.使用''' ‘’‘ / “”“ ”“”可以实现多行字符串

    name = """da's'd'sa'da

    adsasda

    a'd's'da'da    “”“

    3.可以同时赋值多变量

    a,b = 0,1

    4.数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符

    5.如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串:

    >>> print('C:some
    ame')
    C:some
    ame
    >>> print(r'C:some
    ame')
    C:some
    ame

    6.在每行最后一个字符后使用反斜线来说明下一行是上一行逻辑上的延续

    aa = '123'
    '456'
    print(aa)

    7.若局部变量与全局变量同名,则在函数内中优先使用局部变量,并且局部变量的值改变不会影响全局变量,除非局部变量增加global关键字,则直接使用的是全局变量

    8.字典的遍历

    for k,v in dic.items():

      print(k,v)

    9.重写父类的方法,不需要其他标识,只需在子类中定义与父类同名的方法即可

    多重继承:class Dog(Animal,AA)  同时继承Animal和AA类

    10.python获取本机ip(Linux)

    import psutil
    def get_netcard():
    netcard_info = []
    info = psutil.net_if_addrs()
    for k,v in info.items():
    for item in v:
    if item[0] == 2 and not item[1]=='127.0.0.1' and item[1].startswith('192'):
    netcard_info.append(item[1])
    return netcard_info

    11.出现模块未找到的解决办法
    p = os.path.dirname(os.path.dirname((os.path.abspath(__file__))))
    if p not in sys.path:
    sys.path.append(p)

    12.python判断字符串、集合、数组、字典是否为空
      if not variable_name:
        #如果不为空
        print('不为空')

    13.列表推导式
    for循环的简写,一个for循环,然后前面定义一个变量进行变量的保存
    my_list = [value for value in range(0,5)]

    14.global的使用
    当需要改变内存地址的时候,使用global,当不需要改变内存地址的时候,不需要使用global
    例如:
    s1 = [1,2,3]
    def change():
      #引用类型修改不需要改变内存地址
      s1.append(4)
      print(s1)
    # 1,2,3,4
    s1 = 1
    def change():
      #基本数据类型修改需要改变内存地址
      global s1
      s1 = 2
      print(s1)
    #2

    15.语法糖的使用
    定义一个记录日志的语法糖函数         解释:先定义一个装饰器的函数log,当编译器发现函数有装饰器后,将该函数传入装饰器函数中,获得装饰器函数返回的新函数,然后执行新函数,将参数传入,若要获得返回值,则在
                              inner函数里写return值
    def log(func):
      def inner():
        print('调用函数的时间')
        func()
      return inner

    用法
    @log
    def sum(a,b):
      result = a+b
      print(result)
    sum(1,2)
    #调用函数的时间
    #3

    16.python 单例设计模式
    class Animal(object):
    
        __instance = None
    
        def __new__(cls, *args, **kwargs):
            if cls.__instance:
                return cls.__instance
            else:
                cls.__instance = object.__new__(cls)
                return cls.__instance
    
    a1 = Animal()
    a2 = Animal()
    
    print(id(a1))
    print(id(a2))

    17.python 指定特定属性,不允许动态新增属性

    class Animal(object):

      # 定义该类型只有这2个属性

      __slots__ = ('name','age')

    18. __all__的使用

    __all__ 一般用于当使用 from 包/模块 import * 的时候产生作用

    如果在模块中A顶部定义了__all__=['function_name']

    则其他模块中from A import *,则只会导入__all__中定义的function_name

    如果是包,则__all__需要定义在__init__.py文件中

    项目结构

    model
    --__init__.py
    --first_model.py
    --second_model.py

    outside_model.py

    如果outside_model.py中使用from包名,import *不会导入包里所有的模块
    需要使用__all__指定导入的模块,在__init__.py中定义
    __all__ = ['first_model','second_model']

    19.可迭代对象

    for循环可以直接遍历取值的对象:列表、元祖、字符串、集合、range

    判断对象是否是可迭代对象

    from collections import Iterable

    result = isinstance([1,2],Iterable)

    返回True,就是可迭代对象

    20.python获取各个目录的办法

    import os, sys
     
     
    print('__file__:', __file__)
    print('realpath of __file__:', os.path.realpath(__file__))
    print('sys.executable:', sys.executable)
    print('realpath of sys.executable:', os.path.realpath(sys.executable))
    print('sys.argv[0]:', sys.argv[0])
    print('realpath of sys.argv[0]:', os.path.realpath(sys.argv[0]))
    print('sys.path[0]:', sys.path[0])
    print('realpath of sys.path[0]:', os.path.realpath(sys.path[0]))
      




  • 相关阅读:
    python--模块与包
    内置函数 的总结
    迭代器 生成器 列表推导式 生成器表达式的一些总结
    函数的有用信息 带参数的装饰器 多个装饰器装饰一个函数
    函数名的应用(第一对象) 闭包 装饰器
    动态参数 名称空间 作用域 作用域链 加载顺序 函数的嵌套 global nonlocal 等的用法总结
    函数的初识 函数的返回值 参数
    文件操作 常用操作方法 文件的修改
    遍历字典的集中方法 集合的作用 以及增删查的方法
    计算机硬件的小知识
  • 原文地址:https://www.cnblogs.com/zst-blogs/p/10832483.html
Copyright © 2011-2022 走看看