1. 斐波那契数序列

>>> a,b=0,1
>>> a
0
>>> b
1
>>> while b<10:
print(b)
a,b=b,a+b 1
1
2
3
5
8

关键字end(参数)可以用来避免输出后换行:

>>> a,b=0,1
>>> while b<1000:
print(b,end=' ')
a,b=b,a+b 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

2. Python流程控制

  • if Statements if 语句:if语句可以有零个或多个elif分支语句,并且else分支语句是可选的。
>>> x=int(input("Please enter an integer: "))
Please enter an integer: 42
>>> if x<0:
x=0
print("Negative changed to zero")
elif x==0:
print("Zero")
elif x==1:
print("Single")
else:
print("More") More
  • for语句:对任何序列(列表或字符串)的项按照它们在序列中的顺序进行迭代
>>> a=["cat","window","defenstrate"]
>>> for x in a:
print(x,len(x)) cat 3
window 6
defenstrate 11
>>> for x in a[:]:
if len(x)>6:
a.insert(0,x) >>> a
['defenstrate', 'cat', 'window', 'defenstrate']
  • range()函数

如果你必须迭代一个数字序列,内置函数range()会派上用场。它生成一个等差级数序列

>>> for i in range(5):
print(i,end=' ') 0 1 2 3 4
>>> for i in range(5,10):
print(i, end=' ') 5 6 7 8 9
>>> for i in range(0,10,3):
print(i, end=' ') 0 3 6 9

可以通过结合使用range()和len(), 来迭代序列的索引

>>> a=['Mary','had','a','little','lamb']
>>> for i in range(len(a)):
print(i,a[i]) 0 Mary
1 had
2 a
3 little
4 lamb

list()从迭代(对象)中创建列表

>>> print(range(10))
range(0, 10)
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • break, continue,以及循环的else子句

break语句用于跳出最近的for循环或while循环;continue语句继续循环的下一次迭代过程;

>>> for n in range(2,10):
for x in range(2,n):
if n%x==0:
print(n,'is not a prime number')
break
else:
print(n,'is a prime number') 2 is a prime number
3 is a prime number
4 is not a prime number
5 is a prime number
6 is not a prime number
7 is a prime number
8 is not a prime number
9 is not a prime number
  • pass语句:不做任何事,它被用于语法结构上需要一条语句但并不做任何事时

pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作,比如:

>>> while True:
pass

pass通常用来创建一个最简单的类:

>>> class MyEmptyClass:
pass

pass在软件设计阶段也经常用来作为TODO,提醒实现相应的实现,比如:

>>> def initlog(*args):
pass #please implement this
  • 定义函数
>>> def fib(n):
a,b=0,1
while b<n:
print(b,end=' ')
a,b=b,a+b >>> fib(2000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
>>> f=fib
>>> f(100)
1 1 2 3 5 8 13 21 34 55 89
>>>

定义一个返回斐波那契数列数字列表的函数,而不是打印它:

>>> def fib3(n):
result=[]
a,b=0,1
while b<n:
result.append(b)
a,b=b,a+b
return result >>> f300=fib3(300)
>>> f300
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]

默认值赋予在函数定义是定义域的值,例如:

>>> def f(arg=i):
print(arg) >>> i=6
>>> f()
5

Important warning:默认值只被赋值一次。下面的函数在后续的调用中会累计前面传给它的参数:

>>> def f(a,L=[]):
L.append(a)
return L >>> print(f(1))
[1]
>>> print(f(2))
[1, 2]
>>> print(f(3))
[1, 2, 3]

如果不想让默认值在后续调用中累积,可以:

>>> def f2(a,L=None):
if L is None:
L=[]
L.append(a)
return L >>> print(f2(1))
[1]
>>> print(f2(2))
[2]

Python 学习 Part1的更多相关文章

  1. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  5. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  6. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. [Python] 学习资料汇总

    Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...

  9. Python学习之路【目录】

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...

随机推荐

  1. EasyDarwin开源流媒体服务器提供的RTMP直播推送库

    EasyRTMP EasyRTMP是什么? EasyRTMP是一个EasyDarwin配套使用,也可以单独使用的RTMP推送库,通过EasyRTMP我们就可以避免接触到稍显复杂的RTMP推送流程,只需 ...

  2. zoj 2271 Chance to Encounter a Girl <概率DP>

    题目: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2271 题意:一个N*N的矩阵( N = 2*k-1 , k< ...

  3. 判断一个IP地址是否是本局域网内地址

    //        /// <summary>        /// 判断一个IP地址是否是本局域网内地址,是返回true 否则返回false,        /// </summa ...

  4. [2017-10-25]Abp系列——集成消息队列功能(基于Rebus.Rabbitmq)

    本系列目录:Abp介绍和经验分享-目录 前言 由于提交给ABP作者的集成消息队列机制的PR还未Review完成,本篇以Abplus中的代码为基准来介绍ABP集成消息队列机制的方案. Why 为什么需要 ...

  5. socket 学习笔记

    #include <sys/socket.h> ---------------------------------------------------------------------- ...

  6. 关于oracle批量插入数据遇到的问题

    截取部分日志信息: 2015-09-01 14:48:47,132 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReade ...

  7. Python: PS 滤镜--USM 锐化

    本文用 Python 实现 PS 滤镜中的 USM 锐化效果,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/detail ...

  8. CodeForces - 597C:Subsequences (主席树+DP)

    For the given sequence with n different elements find the number of increasing subsequences with k + ...

  9. MVC错误:查询的结果不能枚举多次

    应用程序中的服务器错误. 查询的结果不能枚举多次. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: S ...

  10. Docker 与 宿主机之间的文件cp

    Docker 与 宿主机之间的文件cp 第一种方法是官方比较推荐的,其实和第二种方法实现是一样的. 第一种方法例: 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下. ...