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(1)的更多相关文章

  1. Python(五)编程小实例

    Python(五)编程小实例 抓取网页信息,并生成txt文件内容! Python抓取网页技能--Python抓取网页就是我们常看见的网络爬虫,我们今天所要用到的就是我们Python中自带的模块,用这些 ...

  2. 初学 Python(十三)——匿名函数

    初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...

  3. 初学 Python(十一)——切片

    初学 Python(十一)--切片 初学 Python,主要整理一些学习到的知识点,这次是切片. #-*- coding:utf-8 -*- ''''' 切片 ''' L = ['name','age ...

  4. 初学Python(十)——列表生成式

    初学Python(十)--列表生成式 初学Python,主要整理一些学习到的知识点,这次是列表生成式. # -*- coding:utf-8 -*- ''''' 列表生成式 ''' #一行代码表达所有 ...

  5. 初学Python(九)——函数

    初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x) ...

  6. 初学Python(八)——迭代

    初学Python(八)——迭代 初学Python,主要整理一些学习到的知识点,这次是迭代. # -*- coding:utf-8 -*- from collections import Iterabl ...

  7. 初学Python(七)——控制语句

    初学Python(七)——控制语句 初学Python,主要整理一些学习到的知识点,这次是控制语句. if : #-*- coding:utf-8 -*- age=raw_input('input yo ...

  8. 初学Python(六)——输入输出

    初学Python(六)——输入输出 初学Python,主要整理一些学习到的知识点,这次是输入输出. 输入: # -*- coding:utf-8 -*- ''''' python中的输出为print ...

  9. 初学Python(五)——元组

    初学Python(五)——元组 初学Python,主要整理一些学习到的知识点,这次是元组. #-*- coding:utf-8 -*- #定义元素 t = (1,2,3) #添加元素 #删除元素 #更 ...

  10. 初学Python(四)——set

    初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] ...

随机推荐

  1. Android studio使用git-android学习之旅(79)

    首先我参考了hello_my_show和梦痕_sky的博客,表示感谢 android studio对于git的支持是很好的,这节课我们拉讲解怎么使用git可视化工具来clone project和提交修 ...

  2. 网站开发进阶(二十六)js刷新页面方法大全

    js刷新页面方法大全 在项目开发过程中,需要实现刷新页面.经过学习,发现下面这条语句就可以轻松实现. location.reload(); // 刷新页面 有关刷新页面的其它方法,具体学习内容如下,有 ...

  3. Weka 算法大全

    关联规则挖掘 (一)  Apriori (二)  FilteredAssociator (三)  FPGrowth (四)  GeneralizedSequentislPatterns (五)  Pr ...

  4. 谈谈final

    用final修饰类 这种情况很简单,这个类不能被继承.它"绝后"了. 用final修饰方法 这里可以分两种情况. 用final修饰private方法.其实也不能这么说,因为私有方法 ...

  5. 仿百度壁纸客户端(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化

    仿百度壁纸客户端(六)--完结篇之Gallery画廊实现壁纸预览已经项目细节优化 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Fragment 仿百度 ...

  6. Makefile的obj-y 和 obj-m

    目标定义是Kbuild Makefile的主要部分,也是核心部分.主要是定义了要编 译的文件,所有的选项,以及到哪些子目录去执行递归操作. 最简单的Kbuild makefile 只包含一行: 例子: ...

  7. SpriteBuilder物理对象的父子关系

    注意:打开物理使能(Physics-enabled)的节点忽略他们的父节点关系. 这意味着,一个物理使能的子节点不会随着其父节点移动. 物理引擎对于节点父子关系这个概念毫不知情,因此单独的对待所有物理 ...

  8. ActiveMQ系列之五:ActiveMQ的Transport

    连接到ActiveMQ Connector:ActiveMQ提供的,用来实现连接通讯的功能.包括:client-to-broker.broker-to-broker. ActiveMQ允许客户端使用多 ...

  9. Android实训案例(二)——Android下的CMD命令之关机重启以及重启recovery

    Android实训案例(二)--Android下的CMD命令之关机重启以及重启recovery Android刚兴起的时候,着实让一些小众软件火了一把,切水果,Tom猫,吹裙子就是其中的代表,当然还有 ...

  10. Android开发技巧——自定义控件之使用style

    Android开发技巧--自定义控件之使用style 回顾 在上一篇<Android开发技巧--自定义控件之自定义属性>中,我讲到了如何定义属性以及在自定义控件中获取这些属性的值,也提到了 ...