一、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. java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with specified [javax.transaction.TransactionManager] required

    错误信息: java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA trans ...

  2. wav文件与byte互转 C#

    //wav转byte public void WavToByte() { Byte[] bs; FileStream fs = new FileStream(@"C:\1.wav" ...

  3. B. RGB plants

    B. RGB plants time limit per test 2.0 s memory limit per test 64 MB input standard input output stan ...

  4. ArcoLinux安装完成后的的配置

    ArcoLinux安装完成后的的配置 这可能是全网第一篇Arcolinux的教程 1. 更改源 修改/etc/pacman.d/mirrorlist 在最头上增加清华源 Server = https: ...

  5. Golang的进制转换实战案例

    Golang的进制转换实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用进制概述 1>.进制概述 进制也就是进位制,是人们规定的一种进位方法.举个例子:二进制就 ...

  6. POJ 2305:Basic remains 进制转换

    Basic remains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5221   Accepted: 2203 Des ...

  7. .Net 经典案例

    1.捕捉一只小可爱 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  8. 文本编辑器vim/vi——模式切换及输入模式

    vim一共有三种模式:命令模式.输入模式.末行模式 要从命令模式切换到输入模式:a,i,o a——append 属于在后面追加内容:i——insert 属于插入,在前面插入内容:o——other 属于 ...

  9. vzray服务端配置

    打开securecrt登陆服务器 输入命令:bash <(curl -s -L https://git.io/vzray.sh)1 回车tcp 回车端口 回车默认 回车

  10. 实验吧-web-天下武功唯快不破(Python中byte和str的转换)

    题目:看看响应头 打开网站,既然已经提示我们看响应头了,那我们就看看呗(习惯bp,也可直接F12查看) 可以看到,响应头部分有个FLAG,而且有提示:please post what you find ...