python或许return的问题

python或许return的问题,第1张

def A(N):  # 取值A(4)

    for x in range(2, N):  # x 在范围(2, 4)内, 即x=2, x=3 ,不包含4

        if N % x == 0:  # N%x 是取模,就是取余数, 当N%x==0,就是N可以整除x

        return False  # 当只要有一次整除的时候 就返回False结束程序,不再执行下一行

    return True  # 当N没有可以整数x的时候, 最后返回True

    

print(A(1))  # N取值1, range(2,1)是空列表,没有元素可以被N整数, 所以返回 True

print(A(4))  # N取值4, 当x=2的时候, N%x==0, 就返回False

return 会直接另函数返回,函数就运行结束了,所有该函数体内的代码都不再执行了,所以该函数体内的循环也不可能再继续运行。

如果你需要让循环继续执行,就不能return函数,而应该选用break或者continue。

break:跳出所在的当前整个循环,到外层代码继续执行。

continue:跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。

return:直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行。

用下边的示例代码来解释:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

def return_continue_break(type):

if(not type in ["return", "continue", "break"]):

print '"type" should be "return, continue, break"'

return

for j in range(0, 10):

for i in range(0, 10):

print "j_i: %d_%d" %(j, i)

if(i > 3):

if(type == "return"):

return

elif(type == "continue"):

continue

else:

break

print "executed!"

if __name__ == '__main__':

return_continue_break("break")

return_continue_break("continue")

return_continue_break("return")

BREAK的输出为:

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

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

j_i: 0_0

executed!

j_i: 0_1

executed!

j_i: 0_2

executed!

j_i: 0_3

executed!

j_i: 0_4

j_i: 1_0

executed!

j_i: 1_1

executed!

j_i: 1_2

executed!

j_i: 1_3

executed!

j_i: 1_4

j_i: 2_0

executed!

j_i: 2_1

executed!

j_i: 2_2

executed!

j_i: 2_3

executed!

j_i: 2_4

j_i: 3_0

executed!

j_i: 3_1

executed!

j_i: 3_2

executed!

j_i: 3_3

executed!

j_i: 3_4

j_i: 4_0

executed!

j_i: 4_1

executed!

j_i: 4_2

executed!

j_i: 4_3

executed!

j_i: 4_4

j_i: 5_0

executed!

j_i: 5_1

executed!

j_i: 5_2

executed!

j_i: 5_3

executed!

j_i: 5_4

j_i: 6_0

executed!

j_i: 6_1

executed!

j_i: 6_2

executed!

j_i: 6_3

executed!

j_i: 6_4

j_i: 7_0

executed!

j_i: 7_1

executed!

j_i: 7_2

executed!

j_i: 7_3

executed!

j_i: 7_4

j_i: 8_0

executed!

j_i: 8_1

executed!

j_i: 8_2

executed!

j_i: 8_3

executed!

j_i: 8_4

j_i: 9_0

executed!

j_i: 9_1

executed!

j_i: 9_2

executed!

j_i: 9_3

executed!

j_i: 9_4

RETURN的输出为:

1

2

3

4

5

6

7

8

9

j_i: 0_0

executed!

j_i: 0_1

executed!

j_i: 0_2

executed!

j_i: 0_3

executed!

j_i: 0_4

CONTINUE的输出为:

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

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

j_i: 0_0

executed!

j_i: 0_1

executed!

j_i: 0_2

executed!

j_i: 0_3

executed!

j_i: 0_4

j_i: 0_5

j_i: 0_6

j_i: 0_7

j_i: 0_8

j_i: 0_9

j_i: 1_0

executed!

j_i: 1_1

executed!

j_i: 1_2

executed!

j_i: 1_3

executed!

j_i: 1_4

j_i: 1_5

j_i: 1_6

j_i: 1_7

j_i: 1_8

j_i: 1_9

j_i: 2_0

executed!

j_i: 2_1

executed!

j_i: 2_2

executed!

j_i: 2_3

executed!

j_i: 2_4

j_i: 2_5

j_i: 2_6

j_i: 2_7

j_i: 2_8

j_i: 2_9

j_i: 3_0

executed!

j_i: 3_1

executed!

j_i: 3_2

executed!

j_i: 3_3

executed!

j_i: 3_4

j_i: 3_5

j_i: 3_6

j_i: 3_7

j_i: 3_8

j_i: 3_9

j_i: 4_0

executed!

j_i: 4_1

executed!

j_i: 4_2

executed!

j_i: 4_3

executed!

j_i: 4_4

j_i: 4_5

j_i: 4_6

j_i: 4_7

j_i: 4_8

j_i: 4_9

j_i: 5_0

executed!

j_i: 5_1

executed!

j_i: 5_2

executed!

j_i: 5_3

executed!

j_i: 5_4

j_i: 5_5

j_i: 5_6

j_i: 5_7

j_i: 5_8

j_i: 5_9

j_i: 6_0

executed!

j_i: 6_1

executed!

j_i: 6_2

executed!

j_i: 6_3

executed!

j_i: 6_4

j_i: 6_5

j_i: 6_6

j_i: 6_7

j_i: 6_8

j_i: 6_9

j_i: 7_0

executed!

j_i: 7_1

executed!

j_i: 7_2

executed!

j_i: 7_3

executed!

j_i: 7_4

j_i: 7_5

j_i: 7_6

j_i: 7_7

j_i: 7_8

j_i: 7_9

j_i: 8_0

executed!

j_i: 8_1

executed!

j_i: 8_2

executed!

j_i: 8_3

executed!

j_i: 8_4

j_i: 8_5

j_i: 8_6

j_i: 8_7

j_i: 8_8

j_i: 8_9

j_i: 9_0

executed!

j_i: 9_1

executed!

j_i: 9_2

executed!

j_i: 9_3

executed!

j_i: 9_4

j_i: 9_5

j_i: 9_6

j_i: 9_7

j_i: 9_8

j_i: 9_9

return,就是函数返回传。每一个函数都必须有一个返回值的,如果函数中没有写return,默认返回为None对象比如:defadd(a,b):returna+bprintadd(2,3)以上会得到输出5而:defadd1(a,b):c=a+bprintadd1(2,3)以上会输出None,因为函数没有return,所以add1没有返回值

yield

yield是用于生成器。什么是生成器,你可以通俗的认为,在一个函数中,使用了yield来代替return的位置的函数,就是生成器。它不同于函数的使用方法是:函数使用return来进行返回值,每调用一次,返回一个新加工好的数据返回给你;yield不同,它会在调用生成器的时候,把数据生成object,然后当你需要用的时候,要用next()方法来取,同时不可逆。你可以通俗的叫它"轮转容器",可用现实的一种实物来理解:水车,先yield来装入数据、产出generator object、使用next()来释放;好比水车转动后,车轮上的水槽装入水,随着轮子转动,被转到下面的水槽就能将水送入水道中流入田里。

def func3():

for i in range(1,5):

yield i#装入

gob = func3()#generator 类型

print next(gob)#1 释放的第一个装入的数据,(先入先出)

print next(gob)#2

print next(gob)#3

print next(gob)#4

print next(gob)#报错

复制代码

return

这个大家都知道了,一句话,return既可以终止函数的执行,也可以返回函数加工处理好的数据,只是这个数据需要一个载体来进行保存,通常是变量。非条件判断的时候,只要遇见return,函数就结束执行。

以上就是关于python或许return的问题全部的内容,包括:python或许return的问题、Python怎么return后让循环继续运行、python中return到底什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9629314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存