1.while循环(只有在条件表达式成立的时候才会进入while循环)
while 条件表达式:
pass
while 条件表达式:
pass
else:
pass
不知道循环次数,但确定循环条件的时候用while
1
2
3
4
5
6
7
|
# 如果说年利率是6%,存入1000到第几年本钱翻倍
money = 10000
year = 0
while money < 20000 :
money = money * ( 1 + 0.06 )
year + = 1
print ( '第 {0} 年本钱翻倍了,总共有 {1} 元' . format (year,money))
|
1.函数 :一个函数实现一个功能
规则:def 函数名([形参]):
pass
命名规则:注意不要使用大驼峰,默认小驼峰,大驼峰命名只用于类的命名
1.函数的参数与返回值 返回值:函数执行的结果1.函数参数的定义与使用
1
2
3
4
5
6
7
|
def hello(name):
print ( "你好吗,{}" . format (name))
return "函数中止执行,后面不管有多少句代码都不会被执行"
print ( "这句话不会被执行" )
person = 'Tom'
hello(person)
rst = hello( "John" ) #函数也可以这么调用,如果有返回值会将返回值赋值给变量
|
函数的返回值
表示函数执行的结果,如果函数中没有return系统自动返回None,函数一旦执行return语句,则无条件返回,意味着return下面的语句将不再执行,只要遇到return,函数自动中止执行。
参数详解:普通参数 默认参数 收集参数 关键字参数
- 普通参数:定义的时候直接定义变量名,平时用的最多的参数
def 函数名(参数1, 参数2, ....):
调用: 函数名(参数1, 参数2, ...)
- 默认参数: 函数中默认给定义好的参数,参数有默认值
def 函数名(value1, canshu = value2): 其中的canshu = value2 就是默认参数,典型的例子就是 print(value1, value2, ...,sep=" ", end= '\n',..)
调用的时候,如果没有特殊要求 ,默认参数可以不用进行传值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
def hello(name, gender = 'boy' ):
if gender = 'boy' :
print ( "welcome,{0},you are a good {1}" . format (name, gender))
else :
print ( "welcome,{0},you are a good {1}" . format (name, gender))
hello( 'Tom' )
hello( 'Siri' , 'girl' )
- 关键字参数:注意与默认参数区分,好处就是实参与形参位置可以不用一一对应
def fun(p1 = v1, p2 = v2, ...):
pass
fun(p1 = value1, p2 = value2, ....)
def student(name = None , age = None , gender = None ):
print ( "我是一个学生,我的名字是 {0}, 我今年 {1} 岁, 我是个 {3}生" )
name = 'Tom'
age = 12
gender = '男'
student(age = age, gender = gender, name = name)
- 收集参数:
把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中
def fun( * args):
pass
调用:fun(p1, p2, p3, ...)
参数名可以不用 args,但推荐这么用,约定俗成. 注意前面的 " * " 不能省略, 调用的时候可以不传入参数值
收集参数传参的时候不能直接传入关键字参数,例如 fun(name = 'Tom' Z)
def stu( * args ):
print ( "大家好, 简单自我介绍一下:" )
for i in args:
print (i, end = '=>' )
stu( "小明" , 18 , "山东省" )
stu( '小红' )
- 收集参数之关键字收集参数
把关键字参数以字典的形式放入收集参数, 访问kwargs需要用访问字典的方式
def fun( * * kwargs ):
pass
#调用
fun(p1 = v1, p2 = v2, ....)
|
2.各种类型参数混合使用的顺序问题:
使用的规则一般是:普通参数 关键字参数优先
定义的时候一般找普通参数 , 收集参数(args),关键字参数, 收集参数(kwargs)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
def stu(name, age, * args, hobby = '没有' , * * kwargs):
print ( '大家好' )
print ( "我叫 {0}, 我今年 {1} 大了." . format (name, age))
if hobby = = '没有' :
print ( '我没有爱好' )
else :
print ( "我的爱好是{0}" . format (hobby))
for i in args:
print (i)
for k, v in kwargs.items():
print (k, ' ------' , v)
name = 'tom'
age = 19
stu(name, age, '王晓静' , '小红' , hobby = 'sing' , addr = 'beijing' , phone = '123213' )
def stu( * * kwargs):
print (大家好,我先自我介绍一下)
# 对于字典的访问,Python2 与 Python3 有区别
for k,v in kwargs.items():
print (k, '--------' , v)
stu(name = 'wangxiaojjing' , age = 10 , addr = '北京' )
收集参数的解包问题(unpack)
- 把参数放入 list 或者 dict 中,直接把 list / dict 中的值放入收集参数中
def stu( * args):
for i in args:
print (i)
l = list ()
l.append( 'aafd' ) # 在列表的最后插入值
l.append( 1321 )
stu(l) # 打印的结果是['aafd', 1321] 不是理想中的结果
stu( * l) # 解包符号 * 加上以后就是理想中的结果
对于 dict 类型的收集参数一样可以解包,但是需要加两个 * ,
## 返回值
函数和过程的区别就是: 有无返回值,如果函数中没有显式返回值,即 return value 则默认返回 None
例如:
def func1():
print ( 'aaa' )
return 1
def func2():
print ( 'a' )
f1 = func1() # 结果是 1
f2 = func2() # 结果是 None
建议所有的函数不管有没有返回值在最后都加上一个 return
# 函数文档
- 用来解释函数的作用以及利用方式
- 文档的写法:
在函数内部开始的第一行使用三引号括起来
一般具有特定格式
例如
def stu(name, age):
'''这是
文档
'''
print (name, age)
return None
- 查看文档的方式: 使用 help (函数名)
使用 函数名._doc_
|
下面看下Python中while和for的区别
在c、c++、Java、C#等语言中,while和for的用法是基本一致的,但是在Python中,这两个循环还是存在一定的差别的
当遍历序列或数组时, 只能用for,while用来遍历会出现死循环
总结
以上所述是小编给大家介绍的python while 函数及while和for的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/Abelte/archive/2018/09/07/9582207.html