Python基础语法学习总结(2)
一、条件和循环
1.条件语句的语法变化不大,主要就是多了个引号还把大括号给整没了,其他基本一样了。
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
2.循环语句有一些区别
(1)while循环:没有do…while循环了,多了while…else循环
#!/usr/bin/python3
count = 0
while count < 5:
print (count, " 小于 5")
count = count + 1
else:
print (count, " 大于或等于 5")
执行以上脚本,输出结果如下:
0 小于 5
1 小于 5
2 小于 5
3 小于 5
4 小于 5
5 大于或等于 5
(2)for循环:for循环更方便了,现在专用来遍历可迭代的对象了,如果要像C语言里的for一样也可以使用range()
>>>languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
... print (x)
...
C
C++
Perl
Python
>>>
>>>for i in range(5):
... print(i)
...
0
1
2
3
4
二、迭代器与生成器
这两个都是挺有意思的新东西
1.迭代器就是从头到尾遍历一遍的工具,只可以向前不可以向后,有两个基本的方法:iter() 和 next()。iter()就是创建迭代器,next()就是让迭代器迭代到下一个。
>>> list=[1,2,3,4]
>>> it = iter(list) # 创建迭代器对象
>>> print (next(it)) # 输出迭代器的下一个元素
1
>>> print (next(it))
2
>>>
2.生成器就只要在函数中加入yield关键词该函数就成为了一个生成器,函数执行到yield时,函数不会结束运行,而是暂停并保存此次运行的信息,然后继续运行函数。例子如下:
import sys
def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
print("继续执行")
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
try:
print(next(f), end=" ")
except StopIteration:
sys.exit()
运行结果如图:
三、函数
Python的函数和其他语言差别似乎并不大,就格式区别大些,例子如下
# 定义函数
def printme( str ):
# 打印任何传入的字符串
print (str)
return
# 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")
另外还有一个值得提的地方,就是因为Python里的变量不同于C语言中的变量,Python中的每个变量都相当于一个指针,给一个变量赋值相当于分配好内存保存该数据然后让变量指针去指向该地址,实例如下:
def change(a):
print(id(a)) # 指向的是同一个对象
a=10
print(id(a)) # 一个新对象
a=1
print(id(a))
change(a)
以上实例输出结果为:
4379369136
4379369136
4379369424