猜数字游戏:
运行结果:
2.2range和xrange 产生一组有规律的数据 语法: range(start,end,step = 1) #start:起始值; end:终值; step:步长,不能为0,默认为1 range(start,end) range(end) #0开始,不包含终值 以上都是生成真实的列表 xrange() #生成器,用多少生成多少;语法和range一样; Python3中没有xrange,当Python3中的range功能与xrange一样 显示xrange列表内容用list(xrange(10)) 2.3循环 while循环 while 条件: #注意有冒号 代码块 #注意缩进 for 循环 明确循环次数 语法 for 一个变量 in 可迭代的对象: #注意冒号 代码块 可迭代的对象也就是说其值是可遍历的,在Python中可迭代的对象主要有string(字符串)、list(列表)、tuple(元组)、dictionary(字典)、file(文件) for可以用列表解析和生成器表达式中: 列表解析 由一对中括号构成,先是一个表达式 ,然后for循环;最后还可以加一个条件 生成器表达式 用的是圆括号,和列表解析很像,但不创建列表而是返回生成器,和Python2中xrange()以及Python3中的range()函数一样,一般在数据量比较大的时候使用 2.4 循环中的break,continue和else break语句 跳出当前所在的循环结构 continue语句 停止当前循环,重新进入循环(也就是停止continue后面的语句) 在while循环中,用于判断循环条件是否满足(满足则跳过continue后面的语句 ,重新进入循环) 在for循环中,用于判断迭代是否已经结束 循环中的 else 如果循环代码从break处终止,跳出循环 正常结束循环,则执行else中的代码,while也可以和else搭配(正常结束while,执行else中的代码) 2.5自定义函数 自定义函数的创建,语法 def 函数名(参数): #参数可写可不写,一般写函数时,代码块先写docstring,也就是代码的注释 代码块 查看一个函数的docstring,可以:print 函数名.__doc__ 默认参数 以赋值语句的形式提供 默认参数的值可以改变 不允许默认参数后面跟非默认参数,默认参数一般需要放置在参数列表的最后 关键字参数 直接写上参数的名字赋值,一旦使用了关键字参数,后面的参数都必须使用关键字参数 关键字参数是让调用者通过使用参数名区分参数 允许改变参数列表中的参数顺序 传递函数 把函数名当作参数传递给另一个函数 lambda函数,匿名函数 lambda 参数列表: 表达式 #注意冒号,返回的是表达式结果 2.6递归 递归必须要有边界条件,即停止递归的条件 递归的代码更简洁,更符合自然逻辑,更容易理解 递归执行效率不高,系统资源消耗比循环大,一般没有循环特征,但有递归特征采用,比如汉诺塔 2.7变量作用域 全局变量 在程序代码主体部分的变量 局部变量 在函数中的变量 如果全局变量和局部变量同名,遵循内层屏蔽外层 Python全局变量不能在函数内重新赋值 global语句 强调全局变量,使得全局变量可以在函数内重新赋值