2.25python笔记 高阶编程

@[TOC](2.25学堂在线python学习笔记 高阶编程)

# 高阶编程

1. 利用二分法查找一个字符是否在某个字符串当中

基线条件:

当s=''时,返回False

当len(s)=1 且 s==char 时返回True

当len(s)>1 且 s[mid]>char时,返回 isIn(char,s[:mid])

否则 当s[mid]<char时,返回isIn(char,s[mid+1:])

若 s[mid]==char 返回True

```py

def isIn(char,s):

    '''

    char:a single character

    s:an alphatical ordered string   

    '''

    if s=='' or len(s)==1:

        print(s)

        return s==char

    mid=int(len(s)/2)   

    if len(s)>1:

        if s[mid]>char:

            print(s)

            return isIn(char,s[:mid])

        elif s[mid]<char:

            print(s)

            return isIn(char,s[mid+1:])

        else:

            print(s)

            return True

```

2. 检测两个字符串是否相互为回文结构

注意要检测基线条件,两个字符串不能是单字符

```py

def semordnilap(str1,str2):

    '''

    str1:输入的第一个字符串

    str2:输入的第二个字符串

    这个函数能够比较并且判别两个字符串

    是否相互为回文结构,并且排除不满足条件的情况

    '''

    def check(str1,str2):

        if len(str1)!=len(str2) or len(str1)==1:

            return False

        else:

            return True

#在这里先对输入的字符串检测

#1.是否是单字符,不满足条件

#2.是否两字符串不等长,不满足条件

    def ss(str1,str2):

        if len(str1)==1:

            return True

        s1=str1[0]

        s2=str2[-1]

        if s1==s2:

            return ss(str1[1:],str2[:-1])

        else:

            return False




    if check(str1,str2)==True:

        return ss(str1,str2)

    else:

        return 'Wrong form!'




#In [42]: semordnilap('abcd','dbcaa')

#Out[42]: 'Wrong form!'

#不等长

#In [43]: semordnilap('a','a')

#Out[43]: 'Wrong form!'

#单字符

#In [44]: semordnilap('abc','cba')

#Out[44]: True

#成功

```

## 笔记

## 字典型变量

1. 过程映射 map

map(abs,[1,-2,3,-4])

将abs作用到每个元素上

把函数当成一级对象对待我们就可以用的更多

2. 相较于数据结构更加一般化

有了字典我们就有获得字典元素的途径,元素是不可变的。

字典就是纯纯的键和数值的集合

monthNumbers={'jan':1,'feb':2,'mar':3,1:'jan',2:'feb',3:'mar'}

注意,放在冒号:前面的是键,冒号后面是对应的值


3. 提取数据 monthNumber['jan']

4. monthNumebers[2]

5. 很像列表,只不过字典可以是任何元素

6. 字典仅能通过键来访问,因为没有次序,所以不能通过次序来访问(我们刚才看起来是123的次序,但是是人工给的键值)

7. 例如monthNumbers[0]就会出错

8. monthNumbers['Apr']=4就将值4赋予了键'Apr'

9. 我们可以看到,对字典进行遍历,仅仅取到了键,没有取到值

```py

collect=[]

for e in m:

collect.append(e)

#我们可以看到,对字典进行遍历,仅仅取到了键,没有取到值

```

这个例子的意义在于,字典能够被迭代

10. 键可以相当复杂,可以是元组,但是键必须是不可变的,例如列表就是可变的不能用作键!

# 调试debugging

## 重要概念

1. 测试方法

以例子测试代码来判断代码是否正确运行

2. 调试方法

修正程序的方法     

3. 什么时候调试检错

3.1我们设计部件的时候都要设计好一块一块的,这样方便锁定错误的发生位置

3.2写好注释,能够帮助调试的时候理解自己当初写的代码,方便找错。

3.3在编程序前,先想好,我的输入是什么,输出是什么,这样能够帮助我们锁定好输入输出,减少错误

3.4良好的注释必须要提示好的假设条件                                 


4. 测试

4.1消除语法错误

4.2消除静态语义错误

4.3设计好,我们希望的输入输出定义

5. 测试的目标:证明bug存在

5.1也可以证明代码没有bug,但是这样很难做,因为我们没办法检测每个输入来测试!

5.2有些方法能够帮助我们证明没有错误,但是通常只能针对简单的代码检测完美无错!

6. 测试集

我们找到一组输入,这组输入很可能能够导致bug,并且很有效。如此来测试代码是否正常运行

(视频6:25)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容