1.python生成器

2.while 1:

num = input('请输入一个整数(输入Q结束程序):')

if num != 'Q':

num = int(num)

print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))

print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))

print('十进制 -> 二进制 : %d -> ' % num, bin(num))

else:

break

十进制到二进制怎么实现的

3.

当时的解释:大佬说-->比如说函数计算的值在函数外面要用,那么必须加return

4.

大佬解释:return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。不带return就默认返回None。带return就是就返回return后面的表达式。None是不能做赋值右值的。单单的funY只是一个函数对象,因为funY后面有个(),就代表funY被调用的。

我的理解:有return的时候表示调用该函数并返回该函数一个值,没有return的时候只是起到调用这个函数,返回的值是默认的none。都有结束函数的意思。

*、用dir(classname)查看类中有哪些东西
用dir(instance)查看实例中有哪些东西
用__dict__查看有哪些属性
用id()查看哪些属性一样
我通过一系列测试得出结论:
类中的所有东西都“复制”实例中了包括类函数,静态函数,类变量,其实能通过实例调用相同名字的类变量
instance__class__.value
另外self是用来进行绑定用的,这点可以通过直接打印函数名能够看到哪个类的对象被绑定
另外还有继承,也可以用上述方法研究看看这些父类子类中到底有哪些东西:其实父类中所有的东西也都复制到子类中了,正是有了显示绑定才能方便的用子类实例调用父类的方法:应为子类实例绑定了父类函数
说到底,都是python的设计哲学比较好,能够用一些方法清楚的看到所有的东西,比起java来说迷迷糊糊的只能看资料了解哪些类中有什么东西,继承时,创建实例时发生了什么改变。

*、 Python里面类之间的关系可以是纵向关系,采用继承机制可以将基类里面的属性和方法全部被子类使用,而父类却不可以使用子类的方法和属性,例如鱼和鲨鱼、鲤鱼三文鱼之间的关系等;当然类之间也可以是横向关系,可以通过实例化一个类的对象来作为另一类的属性来实现类之间的调用关系,例如池塘和池塘内的鱼和乌龟之间的关系等,举例说明:
>>> class Turtle:
        def __init__(self,x):
                self.x = x        
>>> class Fish:
        def __init__(self,y):
                self.y = y
>>> class Pool:
        def __init__(self,x,y):
                self.turtle = Turtle(x)            #将Turtle类实例化的对象turtle作为类Pool实例化对象的属性                
                self.fish = Fish(y)                  #将Fish类实例化的对象fish作为类Pool实例化对象的属性     
        def printnum(self):
                print('池塘内的乌龟有%d 只,小鱼有 %d 条!' %(self.turtle.x,self.fish.y))        
>>> pool = Pool(2,10)
>>> pool.printnum()
池塘内的乌龟有 2 只,小鱼有 10 条!

*、

解释:

解释:表示false,但不等于false

 

*修饰符(装饰器)

 

 

*小甲鱼:class CapStr(str):          -----》              

    def __new__(cls,string):

        string=string.upper()   

        return str.__new__(cls,string)

  错误: class CapStr(str):

    def __new__(cls,string):

        string=string.upper()   

        return str.__new__(cls,string)

    def __init(self,string):

        self.x=string

 

cs=CapStr('I love You')

cs.x

解释:小甲鱼这里只是举例说明__new__(cls)这个特殊方法的用法。在视频和书中都明确说明了绝大多数情况都不需要去改写这个特殊方法的。只有当类继承自另一个不可变类的时候才需要去改写。
1、class CapStr(str)请注意,这个类继承自 str 类;
2、因此如果你不重写__new__方法的话,任何字符串都没有办法在__init__方法中实现首字母大写的初始化操作;
3、改写完成后必须将改动提交给父类的__new__方法来实现返回,例题中是用: str().__new__(cls, string)来实现的,但是一般最好用super函数来避免菱形继承。

至于你的第二段代码不能实现有两个地方理解有误:
1、__init__少了两个下划线;
2、__new__是用来初始化类,__init__是用来初始化类对象;所以__init__里面的self.x属性是cs的,也就是最初传递进去的I Love You字符串,所以你输出还是原来的样子。
3、只需要输入 cs 并回车就可以看到全部大写后的字符串,这是因为实例化对象 cs 的时候__new__方法除了 cls 参数以外,其他参数都会传递给__init__方法,所以不需要你再写一次了。所有有没有你写的__init__都不影响。

你看下图我的运行结果,第一个是有 __init__的,第二个是没有__init__的。你也可以试试!

*①__metaclass__=type

class CapString(str):

    def __new__(cls,string):

        string=string.upper()

        return str.__new__(cls,string)

 class CapString(str):

    def __new__(cls,string):

        return string.upper()

解释:return string.upper() 是把计算好的结果 自己返回
return str.__new__(cls,string) 是把结果交给父类str处理返回(这样是为是防止不必要的错误发生)
再看看__new__的说明
1. __new__ 是在一个对象实例化的时候所调用的第一个方法
2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __init__ 方法
3. __new__ 决定是否要使用该 __init__ 方法,因为 __new__ 可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果 __new__ 没有返回实例对象,则 __init__ 不会被调用
4. __new__ 主要是用于继承一个不可变的类型比如一个 tuple 或者 string

*

*

*、怎么在shell里改name

                       

解释:类Record()的实例对象没有返回值,这样子写的话x是属于类的属性,在创建的时候就已经被赋值了,赋的值就是那个返回值。

也就是这个样子,这个x已经是'你好'了,然而'你好'是没有 name 这个属性的,

初始化的话这个x指向的是类Record() 这时候的self.x是一个类Record()的实例对象,所以有 name 这个属性。

*

 

 

 

 

 

 

解释:浅拷贝,浅拷贝只拷贝父对象,不拷贝里面的子对象。

http://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html

*

解释:   ip==》119.113.112.332

*

解释:表达式里面有几组括号?只有一组。+号在括号外面。括号最多匹配到一个字符,要么是a, 要么是cre 在单次搜索中如果命中多个分组,自保留最后的分组。他其实是匹配了a,b,c,但是c是最后匹配的,又因为只能匹配一个字符,c又把前面的覆盖了,所以为c。

扩展:

              

m.group() == m.group(0) 这个返回的是整个匹配的字符串"abc"

小甲鱼python疑难点的更多相关文章

  1. 小甲鱼python基础教程飞机大战源码及素材

    百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取. 下载

  2. 一个任务:(小甲鱼python视频第29讲) 代码整理与总结

    任务:将文件(record.txt)中的数据进行分割,并安装以下规则保存起来.  1.小甲鱼的对话单独保存为boy_*.txt的文件(去掉"小甲鱼:")  2.小客服的对话单独保存 ...

  3. 小甲鱼Python第十八讲课后习题

    笔记: 1.函数与过程:过程(procedure)是简单的,特殊且没有返回值的:函数(Function)有返回值 Python严格来说只有函数没有过程 2.局部变量:在局部生效如在函数中定义的变量 3 ...

  4. 小甲鱼Python第十六讲课后习题--017函数

    函数的定义用def,函数名后要用冒号 函数的返回:函数中使用return   测试题: 0. 你有听说过DRY吗? DRY是指Don't Repeat Yourself ,特指在程序设计以及计算中避免 ...

  5. 小甲鱼Python第十三讲课后题--014字符串

     字符串的方法及注释 capitalize()     把字符串的第一个字符改为大写     casefold()     把整个字符串的所有字符改为小写     center(width)      ...

  6. 小甲鱼Python第七讲课后习题

    0.if not(money < 100):上边这行代码相当于? if money>=100 1.assert 的作用是什么? assert “断言”,当这个关键字后边的条件为假的时候,程 ...

  7. 小甲鱼python第二讲课后习题

    0.什么是BIF BIF为内置函数,英语全称为Build-in-Function Python3用input()取代了Python2的raw_input(),接收用户输入 1.用课堂上小甲鱼教的方法数 ...

  8. 小甲鱼Python笔记(类)

    类和对象 类的构造方法 def __init__(): 1 class People: 2 def __init__(self,name): 3 self.name = name 注意:在构造方法中的 ...

  9. 小甲鱼python视频第九讲(课后习题)

    1.列表里可以存放什么东西? 可以存放任何的数据类型, list1 = ['我爱你','i love you',1314] print(list1) 2.向列表中添加元素 append(将参数作为一个 ...

随机推荐

  1. 重置HTML

    html,body,ul,li,ol,dl,dd,dt,p,h1,h2,h3,h4,h5,h6,form,fieldset,legend,img{margin:0;padding:0}fieldset ...

  2. Linux 软链接 硬链接 ln命令(简约说明版)

    注意:路径使用绝对路径!! 解决方法: 当我们需要在不同的目录下用到同一个文件时,会用到以下命令. 命令:ln 作用:为某一个文件在另外一个位置建立一个同步的链接 语法:ln [option] 源文件 ...

  3. E20170514-ts

    yield  n. 产量,产额; moldule  n. 模块; 组件;  exception n 例外 except  prep. 除…外;  vt. 把…除外; 不计 accessor  存取器; ...

  4. spoj 839 OPTM - Optimal Marks&&bzoj 2400【最小割】

    因为是异或运算,所以考虑对每一位操作.对于所有已知mark的点,mark的当前位为1则连接(s,i,inf),否则连(i,t,inf),然后其他的边按照原图连(u,v,1),(v,u,1),跑最大流求 ...

  5. 【Aizu - 0005 】GCD and LCM

    GCD and LCM Descriptions: Write a program which computes the greatest common divisor (GCD) and the l ...

  6. influxdb数据库增加身份认证(windows)三

    接上一节,增加数据库身份认证 1.修改Config配置文件auth-enabled为true 2.然后重新载入最新的config配置文件打开数据库 3.验证身份认证功能是否已打开 说明身份认证功能已打 ...

  7. IE6,7bug大搜集

    断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决 ,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1 ...

  8. 关于Http的小常识(转载,仅供参考)

    HTTP请求头提供了关于请求,响应或者其他的发送实体的信息.HTTP的头信息包括通用头.请求头.响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成. 通用头标:即可用于请求,也可用 ...

  9. C++中的四种强制类型转换符详解

    阅读目录 C++即支持C风格的类型转换,又有自己风格的类型转换.C风格的转换格式很简单,但是有不少缺点的: 转换太过随意,可以在任意类型之间转换.你可以把一个指向const对象的指针转换成指向非con ...

  10. [ZPG TEST 114] 阿狸的英文名【水题】

    1.      阿狸的英文名 阿狸最近想起一个英文名,于是他在网上查了很多个名字.他发现一些名字可以由两个不同的名字各取一部分得来,例如John(约翰)的前缀 “John”和Robinson(鲁滨逊) ...