Python programming 6


基础永远值得花费90%的精力去学习加强。认识实践的重要性。

天道轮回,命运抉择,诉不尽,道不破,参不透,且听天命。

Ax Python Decision Making | 命运

Python 编程语言将任何非零非空值假定为 TRUE,如果它是null,则假定为 FALSE 值。

Python 编程语言提供以下类型的决策语句

if

if 语句由一个布尔表达式和一个或多个语句组成。

语法

if expression:
statement(s)

true则执行语句,否则执行if语句后第一条的代码。

#!/usr/bin/python

var1 = 100
if var1:
   print "1 - Got a true expression value"
   print var1

var2 = 0
if var2:
   print "2 - Got a true expression value"
   print var2
print "Good bye!"

执行

1 - Got a true expression value
100
Good bye!

if…else

if 语句后面可以跟可选的else语句,当布尔表达式为 FALSE 时执行。

else语句可以与if语句结合使用。如果if 语句中的条件表达式解析为 0 或 FALSE 值,则else语句包含执行的代码块。

else语句是可选语句,在if之后最多只能有一个else语句。

语法

if expression:
statement(s)
else:
statement(s)

例子

#!/usr/bin/python

var1 = 100
if var1:
   print "1 - Got a true expression value"
   print var1
else:
   print "1 - Got a false expression value"
   print var1

var2 = 0
if var2:
   print "2 - Got a true expression value"
   print var2
else:
   print "2 - Got a false expression value"
   print var2

print "Good bye!"

执行上述代码时,会产生以下结果 -

1 - Got a true expression value
100
2 - Got a false expression value
0
Good bye!

elif

elif语句允许您检查多个表达式是否为 TRUE,并在其中一个条件评估为 TRUE 时立即执行代码块。

与else类似,elif语句是可选的。但是,与else最多可以有一个语句不同,在if之后可以有任意数量的elif语句。

语法

if expression1:
statement(s)
elif expression2:
statement(s)
elif expression3:
statement(s)
else:
statement(s)

例子

#!/usr/bin/python

var = 100
if var == 200:
   print "1 - Got a true expression value"
   print var
elif var == 150:
   print "2 - Got a true expression value"
   print var
elif var == 100:
   print "3 - Got a true expression value"
   print var
else:
   print "4 - Got a false expression value"
   print var

print "Good bye!"

执行上述代码时,会产生以下结果 -

3 - Got a true expression value
100
Good bye!

嵌套if

您可以在另一个if或else if语句中使用一个ifelse if语句

在某个条件解析为 true 后,您可能想要检查另一个条件。在这种情况下,您可以使用嵌套的if 构造。

在嵌套的if结构中,您可以在另一个if…elif… else结构中包含一个if…elif…else结构。

语法

if expression1:
statement(s)
if expression2:
statement(s)
elif expression3:
statement(s)
elif expression4:
statement(s)
else:
statement(s)
else:
statement(s)

例子

#!/usr/bin/python

var = 100
if var < 200:
   print "Expression value is less than 200"
   if var == 150:
      print "Which is 150"
   elif var == 100:
      print "Which is 100"
   elif var == 50:
      print "Which is 50"
   elif var < 50:
      print "Expression value is less than 50"
else:
   print "Could not find true expression"

print "Good bye!"

执行上述代码时,会产生以下结果 -

Expression value is less than 200
Which is 100
Good bye!

Bx Python Loops | 轮回

一般来说,语句是按顺序执行的:函数中的第一条语句首先执行,然后是第二条,依此类推。可能会出现需要多次执行一段代码块的情况。

编程语言提供了各种控制结构,允许更复杂的执行路径。

循环语句允许我们多次执行一个语句或一组语句。循环语句如下图所示

while

只要给定条件为真,Python 编程语言中的while循环语句就会重复执行目标语句

语法

while expression:
statement(s)

这里,语句可以是单个语句或语句块。条件可以是任何表达式,true 是任何非零值。当条件为真时循环迭代。

当条件变为假时,程序控制传递到紧跟在循环后面的行。

在 Python 中,在编程构造之后缩进相同数量的字符空格的所有语句都被认为是单个代码块的一部分。Python 使用缩进作为分组语句的方法。

#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"

执行上述代码时,会产生以下结果 -

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!

无限循环

如果条件永远不会变为 FALSE,则循环将变为无限循环。使用 while 循环时必须小心,因为此条件可能永远不会解析为 FALSE 值。这会导致一个永远不会结束的循环。这样的循环称为无限循环。

无限循环在客户端/服务器编程中可能很有用,其中服务器需要连续运行,以便客户端程序可以在需要时与其通信。

#!/usr/bin/python

var = 1
while var == 1 :  # This constructs an infinite loop
   num = raw_input("Enter a number  :")
   print "You entered: ", num

print "Good bye!"

执行上述代码时,会产生以下结果 -

Enter a number :20
You entered: 20
Enter a number :29
You entered: 29
Enter a number :3
You entered: 3
Enter a number between :Traceback (most recent call last):
File "test.py", line 5, in <module>
num = raw_input("Enter a number :")
KeyboardInterrupt

CTRL+C退出

While中使用else语句

Python支持将else语句与循环语句相关联。

如果在while循环中使用else语句,则在条件变为false时执行else语句。

下面的示例演示了else语句与while语句的组合,该语句只要小于5就输出一个数字,否则将执行else语句。

#!/usr/bin/python

count = 0
while count < 5:
   print count, " is  less than 5"
   count = count + 1
else:
   print count, " is not less than 5"

执行

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5

单语句

如果只有一条语句,一行就行了

#!/usr/bin/python

flag = 1
while (flag): print 'Given flag is really true!'
print "Good bye!"

for

它能够遍历任何序列的项,如列表或字符串。

语法

for iterating_var in sequence:
statements(s)

如果序列包含表达式列表,则首先对其求值。然后,将序列中的第一项赋值给迭代变量iterating_var。接下来,执行语句块。列表中的每一项都被赋值给iterating_var,并执行语句块,直到耗尽整个序列。

#!/usr/bin/python

for letter in 'Python':     # First Example
   print 'Current Letter :', letter

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # Second Example
   print 'Current fruit :', fruit

print "Good bye!"

执行

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

按序列索引迭代

遍历每个项的另一种方法是对序列本身进行索引偏移。以下为简单示例

#!/usr/bin/python

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print 'Current fruit :', fruits[index]

print "Good bye!"

执行

Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

在这里,我们借助了len()内置函数,它提供了元组中元素的总数,以及range()内置函数提供了要迭代的实际序列。

在For循环中使用else语句

Python支持将else语句与循环语句相关联

如果else语句与for循环一起使用,则在循环迭代列表时执行else语句。

下面的示例演示了else语句与用于搜索从10到20的质数的for语句的组合。

#!/usr/bin/python

for num in range(10,20):     #to iterate between 10 to 20
   for i in range(2,num):    #to iterate on the factors of the number
      if num%i == 0:         #to determine the first factor
         j=num/i             #to calculate the second factor
         print '%d equals %d * %d' % (num,i,j)
         break #to move to the next number, the #first FOR
   else:                  # else part of the loop
      print num, 'is a prime number'
        break

执行

10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7
15 equals 3 * 5
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number

循环控制

break

它终止当前循环并在下一个语句处继续执行,就像C中的传统break语句一样。

break最常见的用法是当触发一些外部条件,需要匆忙退出循环时。break语句可以在while和for循环中使用。

如果使用嵌套循环,break语句将停止最内层循环的执行,并开始执行块之后的下一行代码。

语法

break

#!/usr/bin/python

for letter in 'Python':     # First Example
   if letter == 'h':
      break
   print 'Current Letter :', letter
  
var = 10                    # Second Example
while var > 0:              
   print 'Current variable value :', var
   var = var -1
   if var == 5:
      break

print "Good bye!"

执行

Current Letter : P
Current Letter : y
Current Letter : t
Current variable value : 10
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Good bye!

continue

它将控件返回到while循环的开始。continue语句拒绝当前循环迭代中的所有剩余语句,并将控件移回循环顶部。

continue语句可以在while和for循环中使用。

语法

continue

#!/usr/bin/python

for letter in 'Python':     # First Example
   if letter == 'h':
      continue
   print 'Current Letter :', letter

var = 10                    # Second Example
while var > 0:              
   var = var -1
   if var == 5:
      continue
   print 'Current variable value :', var
print "Good bye!"

执行

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Current variable value : 4
Current variable value : 3
Current variable value : 2
Current variable value : 1
Current variable value : 0
Good bye!

pass

当在语法上需要一条语句,但您不想执行任何命令或代码时,使用它。

pass语句是一个空操作;当它执行时,什么也没有发生。pass在你的代码最终要去的地方也很有用,但还没有写出来(例如,在存根中)

语法

pass

#!/usr/bin/python

for letter in 'Python': 
   if letter == 'h':
      pass
      print 'This is pass block'
   print 'Current Letter :', letter

print "Good bye!"

执行

Current Letter : P
Current Letter : y
Current Letter : t
This is pass block
Current Letter : h
Current Letter : o
Current Letter : n
Good bye!

文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录