了不起的分支和循环

为什么我们分支和循环了不起,而不说C,Python了不起呢?如果没有分支和循环,你说一百次 I Love You! 都要 打印100次,所以你知道有多了不起了1吧。

下面我们通过举例说明

例如:

按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。

解题方案:

method1.py

score = int(input("请输入一个分数:"))
if 100 >= score >=90:
    print("A")
if 90 > score >= 80:
    print("B")
if 80 > score >= 70:
    print("C")
if 70 > score >= 60:
    print("D")
if  score < 0 or score > 100:
    print("输出错误!")

 method2.py

score = int(input("输入一个数:"))
if 100 >= score >= 90:
    print("A")
else :
      if 90 > score >= 80:
         print("B")
      else:
            if 80 > score >= 70:
                print("C")
            else:
                  if 70 > score >= 60:
                      print("D")
                  else:
                       print("输入错误!")

method3.py

score = int(input("请输入一个分数:"))
if 100 >= score >= 90:
    print("A")
elif 90 > score >= 80:
    print("B")
elif 80 > score >= 70:
    print("C")
elif 70 > score >= 60:
    print("D")
else:
    print("输入错误!")

 我们比较一下上面的三种方法,它们执行的结果都是一样的,但是,第一种方法会占用cpu大量的空间,会造成浪费,所以说用后面两种方法更好,另外最后一种方法elif是 else、if的缩进,更加简单,并且更直观。

Python可以有效避免悬挂else

我们聚一个c语言中的列子:

if( a > 2)
  if( a > 7)
    printf("好棒!好棒!");
else
   printf("切~");

 如果在C中,else与它最近的那个if搭配,而在Python中,它与第一个if搭配,因为它们属于一个缩进。

条件表达式(三元操作符)、

Python中只有一个三元操作符,有了这个三元操作符的条件表达式,你可以使用一条语句来完成以下的条件判断和赋值操作:

x, y = 4, 5

if x < y:

small = x

else:

small = y

例子可以改进为:

small = x if x < y else y

断言(assert)

assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。

举个例子:

>>> assert 3 > 4

结果会出现下面这种情况

assert 3 > 4

Traceback (most recent call last):

  File "<pyshell#3>", line 1, in <module>

    assert 3 > 4

AssertionError

而当判断为正常是则不会

>>> assert 4 > 3

一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

While循环体

语法如下:

while   条件:

         循环体

只有当条件为假时退出循环

For循环

Python虽然从C语言编写而来,但是它的for循环和C的for循环不一样,Python的for循环显得更加智能和加大!

语法如下:

for 目标 in 表达式:

             循环体

例:

>>> member = 'Fishc'
>>> for i in member:
	print(i,end=' ')

结果为:

F i s h c 

例:

>>> Name = ['马云','马化腾','雷军']
>>> for each in Name:
	print(each,len(each))

 结果为:

马云 2

马化腾 3

雷军 2

range()

它是for循环的一个小伙伴,它是一个BIF,一个内置函数

语法:range( [strat,] stop[, step=1] )

这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。

step=1表示第三个参数的值默认值是1,它是步进。

range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列。

例:

>>> range(5)

range(0, 5)

>>> list(range(5))

[0, 1, 2, 3, 4]

>>> for i in range(5):

print(i)

0

1

2

3

4

>>> for i in range(2,9):

print(i)

2

3

4

5

6

7

8

>>> for i in range(1,10,2):

print(i)

1

3

5

7

9

break

bingo = '一介布衣是帅哥'
answer = input('请输入一介布衣最想听的一句话:')

while True:
    if answer == bingo:
        break
    answer = input('抱歉,错了,请重新输入:')

print('哎呦,帅哦')
print('你真是我肚子里的蛔虫.')

 continue

for i in range(10):
    if i%2 != 0:
        print(i)
        continue
    i+=2
    print(i)

 结果是:

2

1

4

3

6

5

8

7

10

9

猜你喜欢

转载自3056434592.iteye.com/blog/2295012