转载请注明本文出自maplejaw的博客(http://blog.csdn.net/maplejaw_)
上一篇,我们学习了Python中的基本数据类型,也顺带讲了下while
循环。本篇开始系统的介绍一些流程控制语句。为了方便演示,本篇开始将部分源码写成.py文件,然后运行测试。
首次我们建立demo.py的文本文件。然后使用Python自带的IDIE打开编程即可。按F5即可运行程序。
和其他编程语言一样,Python也有if语句,但是跟其他编程语言却不太相同,倒是像其他语言中的switch语句,此外,需要注意的是else if 应写为elif
。务必记住,条件体内一定要缩进,否则会报错。
x=int(input("请输入一个整数:")); #这里使用int()进行转型,相当于java中的Integer.parseInt
if x<0:
print("该数小于0");
elif x==0:
print("该数等于0");
else :
print("该数大于0");
for循环相当于java中的for-each语句,使用for [x] in [x] :
形式,第一个参数表示你取的名字,第二个参数表示要遍历的列表。
words=['你','你好','你们','你们好'];
for w in words: #遍历list
print(w);
print('第二次循环--->')
for w in words[1:]:# 指定遍历范围
print(w);
如果只是想来个从0到9的循环,该怎么做?使用range()
函数。
for i in range(10):
print(i)
words=['你','你好','你们','你们好'];
for i in range(len(words)):
print(words[i])
range()
也是可以指定范围的。
一个参数:表示0到stop(不包括)。
两个参数:start到stop(不包括)。
三个参数:start到stop(不包括),但是第三个参数step表示步数
break语句等同于C语言,用于跳出最小for循环或while循环。与C语言不同的是python中循环语句可以有else
条件。else
只在for循环结束时执行(不包括break跳出导致的结束)。
以下的程序用来打印出10以内的素数:
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, '=', x, '*', n//x)
break
else:
print(n, '是一个素数')
else:
print('全部执行完毕')
结果为:
2 是一个素数
3 是一个素数
4 = 2 * 2
4 是一个素数
5 是一个素数
6 = 2 * 3
6 是一个素数
7 是一个素数
8 = 2 * 4
8 是一个素数
9 = 3 * 3
9 是一个素数
hello word
continue 语句用于继续下一个循环。
for num in range(2, 10):
if num % 2 == 0:
print('可以被2整除', num)
continue
print('不能被2整除', num)
在了解定义函数之前,我们先来了解下,怎么使用python内置的函数。
求绝对值:abs
求最大值:max
现在来自定义函数,自定义函数必须使用def
来声明,以下定义了一个简单的求两个数之间最大值的函数。
def max(i ,j):
if i>j:
print(i)
else:
print(j)
定义完函数外就可以直接使用了。
max(9,10) # 10
当然我们可以给函数取一个别名,以下为取名m来使用
但是我们发现以上函数有个缺陷,最大数无法赋值给一个变量。怎么使函数有返回值呢?只需使用return
关键字即可。
def max(i, j):
if i > j:
return i
else:
return j
n = max(1, 11)
print(n) # 11,如果没有使用return 则为 None
定义函数时,可以给参数一个默认值。
def max(i, j=10):
if i > j:
return i
else:
return j
n = max(1)
print(n) # 10
n = max(1,-1)
print(n) # 1
n = max(j=-1,i=3) #这里可以指明关键字
print(n) # 3
函数中使用可变参数。
*name
表示可变参数,**name
表示关键字参数,内部包装为字典,字典相当于java中的map,需要指明参数名。
def test(*arguments, **keywords):
for arg in arguments:
print(arg)
print("-" * 40)
for kw in keywords.keys(): # 获取字典的key集合
print(kw, ":", keywords[kw])
test("参数1", "参数2",
"参数3",
shopkeeper="字典1",
client="字典2",
sketch="字典3")
def test(*arguments, *,city,age): ## 表示只能传入city和age的关键字参数
pass这个语句表示什么事都不做。可以当做占位符来使用,常用来定义空函数,或空条件。因为python中不允许定义空函数,故用pass
占位
def max(i, j=10):
pass
self
命名