一、pycharm单行和多行注释快捷键
           
多行注释就一个组合键:选中+Ctrl+/

多行向里面移动:选中+shift+TAB

多行向外面移动:选中+TAB

二、什么是脚本语言?

忽然想到这个问题,其实python学习中,看到有人叫脚本语言、有人说是编译语言。脚本语言需要的是解释器,进行脚本的解释执行,而编译语言需要的是编译器,程序写完,需要的是编译,生成字节码,链接动态库,运行结果,所以脚本语言更具实时性,但编译语言一次编译,多次执行,效率高,但依赖编译器,跨平台性差。脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。每次运行,都是重复执行的。这是我理解的区别。

三、全局变量与局部变量?

  3.1 如果要在函数内改变全局变量的值,就要用global 在函数内声明全局变量,

  3.2 函数中的变量都在栈帧中,栈帧可以访问引用函数之外的变量,但是不能被函数之外的变量引用

3.3 局部变量比函数效率更高。

四、__str__()函数的作用:

  写程序时,打印一个实例化对象时,打印的其实是一个对象的地址。而通过__str__()函数就可以帮助我们打印对象中具体的属性值,或者你想得到的东西。

  因为在python中调用print()打印实例化对象时会调用__str__(),如果重写了__str__()且有返回值,就会打印其中的返回值。
例子:
  class ss:
      def __init__(self,age,name):
          self.age = age
          self.name = name
      def __str__(self):
          return str(self.age)+",,wozenmezhemeshuai,,"+self.name
  if __name__=="__main__":
      s = ss(21,'aitebao')
      print(s)
  输出结果:
  21,,wozenmezhemeshuai,,aitebao
 
五、Django的objects.get和objects.filter方法详解和区别?
 
1)django的objects.get()方法: django的get是从数据库的取得一个匹配的结果,返回一个对象,如果记录不存在的话,它会报错。
2)django的 objects.filter()方法: django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在的话,它会返回[]。
 
六、单例:
    场景:例如打开一个应用,那么配置文件只要加载一次。在python中,单例的方式方法有很多。

七、os和os.path模块:

os.system模块可以直接调用系统的命令

os.startfile:直接调用可执行文件 (可以理解为安装的软件,不是原有的)

os 模块:创建、删除目录、获取文件信息等

os.path 模块提供了目录相关(路径判断、路径切分、路径连接、文件夹遍历)的操作

八、http://www.python.org可以进行在线程序的编写。

九、可读性强,意味着让你可以在更短的时间学习和记忆,提高生产力。

十、比如a=3, a为变量,不需要像java一样声明类型,因为在a=3时,对象就有了类型,在堆中,定义了对象地址、类型、和值了。

十一、round(3.14)=3,四舍五入后产生的新的对象。

十二、强转换也会产生新的对象。

十三、删除列表元素和增加列表元素一样,都会涉及元素的拷贝。

十四、python中,字典的底层为散列表,散列表为一个稀疏数组,数组的每个单元叫做bucket,我们经过计算键的hash值,指定一定的偏移量,然后看对应的bucket是否有值,无值,加入之;有值,则在进行偏移,当散列表2/3都有值时,在进行扩容。

十五、内部函数作用:

  1.隐藏数据     2.避免重复代码,只为所属外部函数服务,不面向所有,不被频繁调用     3.闭包

nonlocal 内部函数中,用来声明外层的局部变量,在内层需要修改外层变量时,会用到。

十六、locals(),字典返回所在函数局部变量

     globals(),字典返回的所有全局变量

十七、对于面向对象和面向过程的理解?

  面向过程:适合简单的,不需要协作即可完成的,需要找动词作为处理关系的。

面向对象:适合复杂的,需要协作的,需要找名词作为类名,确定类与类之间的关系的。

十八、几个需要知道的内置方式,

  1.对象.__dict__表示对象的属性字典

2.print(dir(对象))表示对象的全部方法和属性

3.类方法不能调用实例方法和属性

4.__del__析构函数,del实际调用的是__del__

5.对象()实际调用的是__call__方法。

十九、trackback:打印异常的详细信息

  with open("d/a.txt","a") as f

    trackback.print.exc(file=f)

二十、文件操作中的file.close关闭的是全部,包括内存python文件程序资源,解释器缓存,os操作系统打开硬盘的硬件资源。

二十一、编码与解码不一致,大多造成乱码,python程序为UTF-8,windows默认编码为GBK,linux默认的编码是UTF-8

二十二、file.write():把字符串写到文件中,file.writelines(b)把字符串写到列表中。

二十三、os.listdir(path):只能打印一层文件或文件夹

    os.walk():递归遍历所有文件和目录

二十四、个人理解导入模块实际是一种类似单例的模式,在解释器中只会被加载一次。如果要重新加载importlib.reload(模块名)

二十五、模块和包的发展史可以让我们知道,核心的哲学思想就是“量变引起质变”,“物以类聚”。同样的思路,在企业管理、人的管理中思想完全一致。

二十六、模块的发布:

  本地发布:在当前包下,python setup.py sdist

  下载: python setup.py install(安装到site-packages中)

在pypi官网发布:https://pypi.org发布

二十七、序列化和反序列化

序列化:将对象转化成“串行化”数据形式,存储在硬盘或者网络传输到其他地方。

反序列化:是指相反的操作,将读取的“串行化数据”转化成对象。

二十八、GUI图形用户界面编程就4步骤:

  1.创建跟窗口

  2.在根窗口添加各种可视化组件

  3.布局管理器调整组件的大小和位置

  4.事件处理,让组件活动起来,有相应的事件反应。

二十九、既然可以直接在根窗口添加组件,为什么要Frame,个人理解,因为复杂的可视化界面需要,如果可视化界面足够复杂,各种类型的组件都有,那么我们在添加了Frame后,就可以方便的进行区分。比如不同分类的单选、一部分相同控件不显示等等。可能还有自己没有意识到的许多方便之处。遵循经典写法即可。(了解)

三十、%g 浮点数字(根据值的大小采用%e或%f)

三十一、静态方法是定义在类对象中的,和类中的普通函数类似,和类对象无关的一个函数而已。

三十二、对于__call__方法
   对象通过提供__call__(slef, [,*args [,**kwargs]])方法可以模拟函数的行为,如果一个对象x提供了该方法,就可以像函数一样使用它,也就是说x(arg1, arg2...) 等同于调用x.__call__(self, arg1, arg2) 。模拟函数的对象可以用于创建防函数(functor) 或代理(proxy).

class DistanceForm(object):
  def __init__(self, origin):
    self.origin = origin
    print "origin :"+str(origin)
  def __call__(self, x):
    print "x :"+str(x)
p = DistanceForm(100)
p(2000)

总结:此方法在对象中调用,创建该方法后,对象进行初始化后,就一定最后会执行该方法,且自动执行在该方法中的所有方法,比如类装饰器。

三十三、super(MyTank, self).__init__(top,left);找到mytank的父类后,将子类对象self传递给父类作为对象。

三十四、关于并发编程,有三种方式:
  1)多进程,每个进程只有一个线程
  2)多线程,每个进程有多个线程
  3)多进程,每个进程又有多个线程,但是这种模式很复杂,实际很少采用。
  在python上有一个守护线程的概念,就是主线程死,守护线程也死。创建一个被多个线程共享的队列是最安全的方式,队列里面包换了锁。

三十五、genterator:生成器,一边计算,一边生成,快于推导式

    iterator:迭代器,生成器也是迭代器的一种表现形式,方法next

    iterable:具备迭代性,生成器和集合类都具备迭代性。

三十六、地址/robots.txt,robots是网站跟爬虫间的协议.

三十七、fidder抓包工具,抓取请求。

四、python杂项的更多相关文章

  1. 二十四. Python基础(24)--封装

    二十四. Python基础(24)--封装 ● 知识结构   ● 类属性和__slots__属性 class Student(object):     grade = 3 # 也可以写在__slots ...

  2. 十四. Python基础(14)--递归

    十四. Python基础(14)--递归 1 ● 递归(recursion) 概念: recursive functions-functions that call themselves either ...

  3. 四. Python基础(4)--语法

    四. Python基础(4)--语法 1 ● 比较几种实现循环的代码 i = 1 sum = 0 while i <= 10: # 循环10-1+1=10次     sum += i     i ...

  4. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  5. Python学习笔记整理(四)Python中的字符串..

    字符串是一个有序的字符集合,用于存储和表现基于文本的信息. 常见的字符串常量和表达式 T1=‘’ 空字符串 T2="diege's" 双引号 T3=""&quo ...

  6. Python 全栈开发四 python基础 函数

    一.函数的基本语法和特性 函数的定义 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的.函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数 ...

  7. 初试PyOpenGL四 (Python+OpenGL)GPU粒子系统与基本碰撞

    这篇相当于是对前三篇的总结,基本效果如下: 在初试PyOpenGL一 (Python+OpenGL)讲解Pyopengl环境搭建,网格,球体,第一与第三人称摄像机的实现.在初试PyOpenGL二 (P ...

  8. 四 python并发编程之协程

    一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去 ...

  9. 四.python基础数据类型

    一.什么是数据类型? 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不 ...

随机推荐

  1. 016.CI4框架CodeIgniter数据库操作之:Insert插入一条数据

    01.在Model中,写入插入的语句 <?php namespace App\Models\System; use CodeIgniter\Model; class User_model ext ...

  2. 课程报名 | 基于模型训练平台快速打造 AI 能力

    我们常说的 AI 通用能力往往不针对具体的行业应用,而是主要解决日常或者泛化的问题,很多技术企业给出的方案是通用式的,比如通用文字识别,无论识别身份证.驾驶证.行驶证等,任何一张图片训练后的模型都会尽 ...

  3. Python 实现类似range函数

    需求:写一个属于你自己的 frange函数,frange与range类似,一样的参数规则,但是每一项必须要是float类型 实现: 注意点,如何判断stop是否有参数传入,这里使用空字符判断,如fra ...

  4. NAT的三种方式

    NAT的三种方式: 一.端口NAT acces-list 1 permit IP/Mask ip nat inside source list “number” interface fastether ...

  5. 一百零八、SAP的OO-ALV之二,创建屏幕Screen

    一.在资源管理器,右键->创建屏幕 二.输入4位数字 三.输入屏幕的描述 四.在逻辑流里面PBO用于显示屏幕,PAI用于用户交互. 五.在元素清单里面,在屏幕中的所有元素都是在元素清单中的

  6. 实验吧-杂项-flag.xls(notepad++查找)、保险箱(linux文件分解、密码破解)

    flag.xls 下载文件,用notepad++打开,查找flag就能找到flag. 保险箱(linux文件分解.密码破解) 将图片保存下来,用kali的binwalk分析,发现有rar文件,然后用f ...

  7. opencv python运动人体检测

    采用非极大值抑制,将重叠的框合并成一个. # import the necessary packages from imutils.object_detection import non_max_su ...

  8. Java多线程的应用

    一.概述 提到线程不得不提进行.因为线程是进程的一个执行单元.下面对线程和进程分别进行介绍. 1.进程 进程是当前操作系统执行的任务,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概 ...

  9. Elasticsearch 搜索数据

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  10. spring boot 开发环境搭建(Eclipse)

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...