为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
初识Python_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
  • 短路计算。 1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。 2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。 所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
    查看全部
  • 首先贴出Python编写的汉诺塔算法的代码: def hanoti(n,x1,x2,x3): if(n == 1): print('move:',x1,'-->',x3) return hanoti(n-1,x1,x3,x2) print('move:',x1,'-->',x3) hanoti(n-1,x2,x1,x3) hanoti(3,'A','B','C') 汉诺塔问题归根结底就是一个递归问题,递归包括两大要素:递归体、递归结束条件 首先分析汉诺塔算法的思想: 第一步:若想将n个圆盘中最大的圆盘从A塔放到C塔,需要借助B塔放置其余的n-1个圆盘 第二步:再把B塔看做初始条件时的A塔,将B塔上的n-1个圆盘依据规则放置到C塔上,这一步就是实现一个递归 依据代码来分析: 首先定义函数hanoti(n,x1,x2,x3),该函数作用是将n个圆盘从第一个参数(这里为x1)放到第三个参数(这里为x3)上, if判断是递归结束条件,意思为若只有一个圆盘,只需要将他从第一个参数(这里为x1)放到第三个参数(这里为x3)上即可, 如果不满足递归结束条件,函数继续执行, hanoti(n-1,x1,x3,x2)语句就是执行第一步的过程,即将除最大圆盘外的n-1个圆盘从第一个参数(这里为x1)放到第三个参数(这里为x2)上, 然后输出表示移动结束的print语句, 这一句结束后,表示x2上现在放置着所有剩余的n-1个圆盘, 再继续递归hanoti(n-1,x2,x1,x3)语句,执行第二步过程,即将剩余的n-1个圆盘按同样的方法从从第一个参数(这里为x2)放到第三个参数(这里为x3)上 如此循环往复,完成汉诺塔问题
    查看全部
  • 本在知乎找到两位大神的分析和分析图,感觉很容易理解。 汉诺塔: 第一步:将n-1个盘子(除了最底下一枚)从A移到B 第二步:然后将位于A的最后一枚最大盘移至C 第三步:再将B柱上所有盘移至C柱 def move(n, a, b, c): if(n == 1): print(a,"->",c) return move(n-1, a, c, b) #第一步n-1个由a到b move(1, a, b, c) #第二步第n个由a到c,可替换为print(a,'->',c) move(n-1, b, a, c) #第三步n-1个由b到c move(3, "A", "B", "C") ------------------------------------------/-move(1,'A','B','C')---A-->C -----------------------move(2,'A','C','B')->move(1,'A','C','B')---A-->B ---------------------/--------------------\-move(1,'C','A','B')---C-->B move(3,'A','B','C')-->-move(1,'A','B','C')------------------------A-->C ---------------------\--------------------/-move(1,'B','C','A')---B-->A -----------------------move(2,'B','A','C')->move(1,'B','A','C')---B-->C ------------------------------------------\-move(1,'A','B','C')---A-->C
    查看全部
  • 另一个办法是直接用Paul把Bart给替换掉: >>> L[2] = 'Paul' >>> print L L = ['Adam', 'Lisa', 'Paul'] 对list中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。 由于Bart还可以用 -1 做索引,因此,下面的代码也可以完成同样的替换工作: >>> L[-1] = 'Paul'
    查看全部
  • sum = 0 x = 1 while x<100: print x x =x+2 sum=sum+x print sum
    查看全部
  • Python的 for 循环就可以依次把list或tuple的每个元素迭代出来: L = ['Adam', 'Lisa', 'Bart'] for name in L: print name 注意: name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体(就是缩进的代码块)。
    查看全部
    0 采集 收起 来源:Python之 for循环

    2017-05-21

  • elif 意思就是 else if。这样一来,我们就写出了结构非常清晰的一系列条件判断。 特别注意: 这一系列条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了。
    查看全部
  • >>> L = [] >>> for x in range(1, 11): ... L.append(x * x) ... >>> L [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    查看全部
    0 采集 收起 来源:生成列表

    2018-03-22

  • 注意: else 后面有个“:”。
    查看全部
    0 采集 收起 来源:Python之 if-else

    2017-05-21

  • 注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,上面的3,4行 print 语句就构成一个代码块(但不包括第5行的print)。如果 if 语句判断为 True,就会执行这个代码块。 缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。 注意: if 语句后接表达式,然后用:表示代码块开始。 如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车: >>> age = 20 >>> if age >= 18: ... print 'your age is', age ... print 'adult' ... your age is 20 adult
    查看全部
    0 采集 收起 来源:Python之if语句

    2018-03-22

  • 定义了tuple: t = ('a', 'b', ['A', 'B']) 由于 t 包含一个list元素,导致tuple的内容是可变的。能否修改上述代码,让tuple内容不可变? ?不会了怎么办 ['A', 'B']是list,因此内容可变,但('A', 'B')的内容是不可变的。 参考代码: t = ('a', 'b', ('A', 'B')) print t
    查看全部
  • 添加元素时,用set的add()方法 删除set中的元素时,用set的remove()方法 如果删除的元素不存在set中,remove()会报错 所以用add()可以直接添加,而remove()前需要判断。
    查看全部
    0 采集 收起 来源:Python之 更新set

    2017-05-21

  • 那这两个方法有何不同之处呢? 1. values() 方法实际上把一个 dict 转换成了包含 value 的list。 2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。 3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。 如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。
    查看全部
    0 采集 收起 来源:迭代dict的value

    2018-03-22

  • 在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。
    查看全部
  • 创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素: >>> s = set(['A', 'B', 'C'])
    查看全部

举报

0/150
提交
取消
课程须知
如果您了解程序设计的基本概念,会简单使用命令行,了解中学数学函数的概念,那么对课程学习会有很大的帮助,让您学起来得心应手,快速进入Python世界。
老师告诉你能学到什么?
通过本课程的学习,您将学会搭建基本的Python开发环境,以函数为基础编写完整的Python代码,熟练掌握Python的基本数据类型以及list和dict的操作。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!