python问号堂--第二篇

1.分别书写数字5,10,32,7的二进制表示?

  5---0b101      10---0b1010     32---0b100000    7---0b111

  以上结果可以bin()来检测

  

2.简述对象和类以及模块的关系(可用比喻的手法)?

  • 对象是基于类创建的,对象的功能都在类里,类具体为对象才能调用类里的方法
  • 做个例子,各个品牌汽车商就是类,宝马汽车商就是宝马类,跑在马路上的宝马车就是对象,因为具有宝马类的特征:宝马标志,宝马造型,宝马发动机

  模块和字典差不多

  你知道怎样创建和使用字典这个数据类型,这是一种将一种东西对应到另外一种的方式。这意味着如果

  你有一个字典,它里边有一个叫 ‘apple’ 的 key,而你要从中取值的话,你需要这样做:

  mystuff = {‘apple‘: "I AM APPLES!"}

  print mystuff[‘apple‘]

  记住这个“从Y获取X”的概念,现在再来看看模块(module),你已经创建和使用过一些模块了,你已

  经了解了它们的一些属性:

  1. 模组是包含函数和变量的 Python 文件。

  2. 你可以 import 这个文件。

  3. 然后你可以使用 ‘.’ 操作符访问到模组中的函数和变量。

  假如说我有一个模块名字叫 mystuff.py 并且在里边放了个叫做 apple 的函数,就像这样:

  # this goes in mystuff.py

  def apple():

    print "I AM APPLES!"

      接下来我就可以用 import 来调用这个模块,并且访问到 apple 函数:

      import mystuff

      mystuff.apple()

  模块还可以用一种方法去理解:你可以把它们当做一种特殊的字典,通过它们你可以储存一些 Python

  代码,而你可以通过 ‘.’ 操作符访问到这些代码。Python 还有另外一种代码结构用来实现类似的目的,

  那就是 类(class) ,通过类,你可以把一组函数和数据放到一个容器中,从而用 ‘.’ 操作符访问到它们。

  如果我要用创建 mystuff 模块的方法来创建一个类,那么方法大致是这样的:

  class MyStuff(object):

    def __init__(self):

      self.tangerine = "And now a thousand years between"

    def apple(self):

      print "I AM CLASSY APPLES!"

  这个和模块比起来有些复杂,确实,比起模块来,这里的确做了很多事情,不过你应该能大致看出来,

  这段代码差不多就是模拟了一个名字叫 MyStuff 的迷你模块,里边有一个叫做 apple() 的函数,难懂的

  恐怕是 __init__() 函数,还有就是设置 tangerine 变量时用了 self.tangerine 这样的语法。

  使用类而非模块的原因如下:你可以拿着上面这个类,重复创建出很多出来,哪怕是一次一百万个,它

  们也不会互相干涉到。而对于模块来说,当你一次 import 之后,整个程序里就只有这么一份内容,只有

  鼓捣得很深才能弄点花样出来。

  不过在弄懂这个之前,你要先理解“对象(object)”是什么东西,以及如何使用 MyStuff 达到类似

  import mystuff 实现的结果。

  对象相当于迷你版的 import

  如果说类和迷你模块差不多,那么对于类来说,也必然有一个类似 import 的概念。这个概念名称就是

  “实例(instance)”。这只是一种故作高深的叫法而已,它的意思其实是“创建”。当你将一个类“实例

  化”以后,你就得到了一个 对象(object) 。

  实现实例化的方法,就是像调用函数一样地调用一个类:

  thing = MyStuff()

  thing.apple()

  print thing.tangerine

  第一行代码就是“实例化”操作,这和调用函数很相似。然而,当你进行实例化操作时,Python 在背后

  做了一系列的工作,这里我针对上面的代码详细解释一下:

  1. Python 看到了 MyStuff() 并且知道了它是你定义过的一个类。

  2. Python 创建了一个空的对象,里边包含了你在类中用 def 创建的所有函数。

  3. 然后 Python 回去检查你是不是在里边创建了一个 __init__ 魔法函数,如果你有创建,它就会

  调用这个函数,从而对你的空对象实现了初始化。

  4. 在 MyStuff 中的 __init__ 函数里,我们有一个多余的函数叫做 self ,这就是 Python 为我们创

  建的空对象,而我可以对它进行类似模块、字典等的操作,为它设置一些变量进去。

  5. 在这里,我把 self.tangerine 设成了一段歌词,这样我就初始化了该对象。

  6. 最后 Python 将这个新建的对象赋给一个叫 thing 的变量,以供后面使用。

3.现在有如下两个变量,请简述n1和n2是什么关系?

  n1 = 123

  n2 = 123

  n1和n2指向同一份内存空间,就是123的内存地址,这是python的内部优化机制

4.现有如下两个变量,请简述n1和n2是什么关系

  n1 = 123456

  n2 = 123456

  n1和n2指向不同的内存空间,因为python的内部优化机制只适用-5----257,对以外的数字,当再赋值给新的变量,会重新开辟一份内存空间

  

5.现有如下变量,请简述n1 和 n2是什么关系?

  n1 = 123456

  n2 = n1

  把变量赋给一个新的变量,其实赋给的是一个索引,当把n1赋给n2就是把n1索引到123456的内存地址赋给了n2,所以这里的n1和n2内存地址一样

  

6.布尔值分别有什么?

  真--True   假--False

7.阅读代码,请写出执行结果

  a = ‘alex’

  b = a.capitalize()

  print(a)

  print(b)

  输出结果为:a--alex,b--Alex

欢迎大家对我的博客内容提出质疑和提问!谢谢

                                                                             笔者:拍省先生  

  

时间: 2024-10-09 09:34:28

python问号堂--第二篇的相关文章

由浅入深,走进Python装饰器-----第二篇:进阶--函数装饰函数

上一篇:由浅入深,走进Python装饰器-----第一篇:基础 装饰器的使用种类: # 第一种 @函数 被装饰函数 # 第二种 @函数 被装饰类 # 第三种 @类 被装饰类 # 第四种 @函数 被装饰函数 本篇介绍第一种 @函数 被装饰函数 1.1 对带参数的原函数进行修饰 # 默认将old函数的参数传给outer里面的第一层函数 def outer(f): def inner(var): print("1 我是outer函数,接收外部传进来的old :",f) print("

Python开发【第二篇】:初识Python

Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第四!!!   Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都

Python学习【第二篇】Python入门

Python安装 windows: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机]-->[属性]-->[高级系统设置]-->[高级]-->[环境变量]-->[在第二个内容框中找到 变量名为Path 的一行,双击] --> [Python安装目录追加到变值值中,用 : 分割] 如:原来的值;C:\python27,前面有分号 linux: 自带python

Python自动化 【第二篇】:Python基础-列表、元组、字典

本节内容 模块初识 .pyc简介 数据类型初识 数据运算 列表.元组操作 字符串操作 字典操作 集合操作 字符编码与转码 一.模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,让我们先来象征性的学2个简单的. sys 1 #!/usr/bin/env python 2 3 # -*- coding: utf-8 -*- 4 5 6 7 import sys 8 9 10 11 print(sys.argv) 12 13

Python开发【第二篇】: 基本数据类型(一)

1. 整型 ??整型即整数,用 int 表示,在 Python3 中整型没有长度限制. 1.1 内置函数 ??1. int(num, base=None) ??int( ) 函数用于将字符串转换为整型,默认转换为十进制. >>> int('123') 123 >>> int('123', base=16) 291 ??2. bit_length( num) ??当前数字的二进制,至少用多少位表示. >>> a = 5 >>> a.bi

Python 语言学习 第二篇:数据类型(字符串)

字符串是一个有序的字符的不可变序列,用于存储基于文本的信息.字符串所包含的字符存在从左至右的位置顺序,不可以在原处(in-place)修改.Python没有C语言的字符和字符串之分,只有字符串.从严格意义上说,字符串是单个字符的序列,支持元素基于位置的操作,能够通过位置索引字符:由于字符串具有不可变性,不能对原始的字符串进行修改,也就是说,不能通过对其某一位置进行赋值而修改字符串. 一,字符串常量 字符串常量使用成对的单引号或双引号来表示,两者表示的效果是一样的. 1,在字符串常量中表示引号 如

python之路第二篇

python语言介绍 编译型和解释型 静态语言和动态语言 强类型定义语言和弱类型语言 python数据类型介绍 python数据类型分:数字.布尔型.字符串.列表.元组.字典 1.整数 例如:1,2,33,44等 整数的功能如下: 1 class int(object): 2 """ 3 int(x=0) -> int or long 4 int(x, base=10) -> int or long 5 6 Convert a number or string t

Python 基础【第二篇】python操作模式

一.交互模式 1 #python 2 3 Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 4 5 [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 6 7 Type "help", "copyright", "credits" or "license" for more information. 8 9 >>>

Python进阶【第二篇】多线程、消息队列queue

1.Python多线程.多进程 目的提高并发 1.一个应用程序,可以有多进程和多线程 2.默认:单进程,单线程 3.单进程,多线程 IO操作,不占用CPU python的多线程:IO操作,多线程提供并发 计算性操作 多进程提高并发 4.GIL,全局解释器锁 总结: 多进程,多线程,提供并发 IO密集型:多线程 计算密集型:多进程 2.threading模块 threading模块对象 描述 Thread 表示一个线程的执行的对象 Lock 锁原语对象 RLock 可重入锁对象.使单线程可以再次获