您的位置:首页 > 编程语言 > Python开发

Python3第3课-----编程入门(if、for,while、迭代器与生成器)

2018-04-03 22:54 1051 查看
Python中没有switch – case语句

注释代码的快捷键:选择多行后,alt+3完成注释,alt+4取消注释

斐波那契数

【方案一】

def f(n):
if(n<1):
print('input error')
return -1
elif(n==1 or n==2):
return 1
else:
return f(n-1)+f(n-2)

n=int(input("Please input an integer:"))
result=[]
for i in range(1,n+1):
result.append(f(i))
print(result)
for i in range(1,1+n):
print(result[i])


Please input an integer:9

[1, 1, 2, 3, 5, 8, 13, 21, 34]

1

2

3

5

8

13

21

34

【方案二】

a,b=0,1
while b<=10:
print(b,end=' ')
a,b=b,a+b


`1 1 2 3 5 8

无限循环

while 4>1:print("hahah")


可以用Ctrl+C结束循环

while-else循环

n=1;
sum=0;
while n<=100:sum+=n;n+=1 #Python应该没有++运算符
else:print(sum) #while循环结束后执行else后的语句


for循环

cities=['北京','天津','上海','广州','深圳']
for city in cities:
if city == '上海':
print('我找到上海了,别再执行循环了!')
break
else:
print('循环结束了!')


range()函数

for i in range(6):  #注意区间一般都是左闭右开这一规律,默认从0开始
print(i)


输出:

0

1

2

3

4

5

for i in range(3,6):
print(i)


输出:

3

4

5

for i in range(3,10,2): #设置步长为2
print(i)


输出:

3

5

7

9

for i in range(-2,-10,-2):  #设置步长是-2
print(i)


输出:

-2

-4

-6

-8

可以用range()函数创建一个列表:

lis=list(range(2,6))
print(lis)


输出:[2, 3, 4, 5]

else遇到break

循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行。

for i in range(2,10):
for j in range(2,i):
if i % j == 0:
print("%d=%d*%d"%(i,j,i/j))
break
else:
print("%d是素数"%i)


输出:

2是素数

3是素数

4=2*2

5是素数

6=2*3

7是素数

8=2*4

9=3*3

pass空语句

class A:
pass
class B(A):
pass

print(type(B())==A)
print(isinstance(B(),A))


输出:

False

True

迭代器

【方式一】

lis=[1,2,3]
it=iter(lis)
for i in it:
print(i)


输出:

1

2

3

【方式二】

import sys

lis=[1,2,3]
it=iter(lis)

while True:
try:
print(next(it))
except StopIteration:
sys.exit()


输出:

1

2

3

生成器

import sys

def f(n): # 生成器函数 - 斐波那契
a, b, cnt= 0, 1, 0
while True:
if (cnt > n):
return
yield b  #这里也可以用a,等会输出会该由01为0开始输出
a, b = b, a + b
cnt += 1
it =f(10) # f 是一个迭代器,由生成器返回生成

while True:
try:
print (next(it), end=" ")
except StopIteration:
sys.exit()


输出:

1 1 2 3 5 8 13 21 34 55 89
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: