python程序基础知识(二)程序语句

本文主要是关于python语句的,包括顺序语句、条件语句、循环语句,他们的正常格式、退出语句还有异常处理
的方法,其中还叙述了for循环的特殊形式:列表推导式。

1.概述

python程序语句是人思考流程在编程上的反映,可以通过程序语句来体现。
简单可以分为:顺序语句、条件语句、循环语句

2.顺序语句

顺序语句是程序运行时按代码的顺序来执行语句。
当我们改变语句的位置时,结果也会对应改变
print('hello world')
print('my name')
print('your name')

print('---------')
print('your name')
print('my name')
print('hello world')

结果是:

hello world
my name
your name
---------
your name
my name
hello world

3.条件语句

条件语句是一种分支语句,可以根据对应条件来执行相应的语句

3.1 简单条件语句

格式有以下两种:
格式一:
        if 条件:
            语句1
    如果条件成立,就执行语句1
格式二:
        if 条件:
            语句1
        else:
            语句2
    如果条件成立,就执行语句1,条件不成立就执行语句2
#判断s是否为正整数
s = int(input('请输入一个整数'))
if s > 0:
    print('这是一个正整数')
print('--------')
s = int(input('请输入一个整数'))
if s > 0:
    print('这是一个正整数')
print('------------')   

#判断一个数的奇偶性
m = int(input('请输入一个整数'))
if m % 2 ==0:
    print('这是一个偶数')
else:
    print('这是一个奇数')
print('------------')   
m = int(input('请输入一个整数'))
if m % 2 ==0:
    print('这是一个偶数')
else:
    print('这是一个奇数')

其结果为

请输入一个整数5
这是一个正整数
--------
请输入一个整数-5
------------
请输入一个整数8
这是一个偶数
------------
请输入一个整数7
这是一个奇数

3.2复杂条件语句

复杂条件语句包含更多的分支条件,其格式如下:
if 条件1:
    语句1
elif 条件2:
    语句2
......
elif 条件n:
    语句n
else:
    语句n+1
 # 输入一个在0到100之间的数,60分以下为不合格,60-80为合格,80-90为优秀,90-100为杰出
score = float(input('请输入0-100之间成绩'))
if score < 0 or score >100:
    print('无效成绩')
elif score >= 90:
    print('杰出')
elif score >= 80:
    print('优秀')
elif score >= 60:
    print('合格')
else:
    print('不合格')

其结果是:

请输入0-100之间成绩95
杰出

请输入0-100之间成绩86
优秀

请输入0-100之间成绩72
合格

请输入0-100之间成绩45
不合格

4.循环语句

循环语句分为while循环与for循环,代表在达到一定条件前,程序会一直执行。

4.1 while循环的格式:

    while 条件:
        语句
    while循环是当型循环,要有一个循环变量,在循环条件成立时,就一直执行语句,条件不成立就推出循环。
# 计算1-100的和
sum = 0
counter = 1
while counter <=100:
    sum = sum + counter
    counter+=1
print('1-100的和为:',sum)    

其结果是:

1-100的和为: 5050

4.2 for循环格式:

	for 循环变量 in 序列:
        语句
    for循环是一个迭代循环,可以遍历所有数据,自生带有循环变量。
    
    for循环常用的模型为:
    range(start,stop,step):start为开始值,stop终止值,step为步长,也就是间隔,range的运行结果不包括stop值
    for 循环变量 in range(start,stop,step):
        语句
        
    for循环还有一种特殊的格式,叫列表推导式,可以从一个数据序列出发构建另一个数据序列,其格式如下:
    [操作语句 for 变量 in 序列 if 条件表达式]
# 计算1-100的和,range()函数值域为左闭右开
sum = 0
for i in range(101):
    sum = sum + i
print('1-100的和为:',sum)

其结果是:

1-100的和为: 5050
#使用列表推导式生成list
print([i for i in range(6)])
print([i*2 for i in range(6)])
print('------------')
#包含条件语句的列表推导式
#输出0-10内奇数的两倍
print([i*2 for i in range(11) if i%2==1])
print('------------')
#包含嵌套循环的列表推导式
print([(i,j) for i in range(10) for j in range(10)])
print('------------')
print([(i,j) for i in range(10) if i%2==0 for j in range(10) if j%2==1])

其结果是:

[0, 1, 2, 3, 4, 5]
[0, 2, 4, 6, 8, 10]
------------
[2, 6, 10, 14, 18]
------------
[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (4, 7), (4, 8), (4, 9), (5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (5, 7), (5, 8), (5, 9), (6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6), (6, 7), (6, 8), (6, 9), (7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 6), (7, 7), (7, 8), (7, 9), (8, 0), (8, 1), (8, 2), (8, 3), (8, 4), (8, 5), (8, 6), (8, 7), (8, 8), (8, 9), (9, 0), (9, 1), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6), (9, 7), (9, 8), (9, 9)]
------------
[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9)]

5.循环的控制

5.1正常的循环

正常的循环包括两种:一种是有限次的循环,一种是符合条件的无限循环
上面while和for循环的都是有限次数的循环
有限次的循环到了次数自然会结束,而无限循环会一直运行下去
# 这就是一个死循环,无限循环
i=1
while i < 10:
	print('i')

其结果是重复的’1’,而且不中断程序的话,会一直运行下去

5.2 循环的控制

5.2.1 break控制循环

break用于终止循环语句的执行,一般配合条件语句使用。
i = 0
while  i < 10:
    print(i)
    if i == 5:
        break
    i+=1
    
print('-----------')
for i in range(10):
    print(i)
    if i == 5:
        break
        
print('-----------')

string = 'python'
for i in string:
    if i == 'h':
        break
    else:
        print("letter:{}".format(i))
其结果是:
0
1
2
3
4
5
-----------
0
1
2
3
4
5
-----------
letter:p
letter:y
letter:t

5.2.2 continue控制循环

continue用于控制跳出当前循环,执行下一次循环。
i = 0
while i < 10:
    i = i + 1
    if i%2 == 0:
        continue
    print(i)
    
print('-----------')

for i in range(10):
    if i%2 == 0:
        continue
    print(i)
其结果是:
1
3
5
7
9
-----------
1
3
5
7
9

5.2.3 pass控制循环

pass是空语句,用于占位,不执行任何操作,只是保持程序结构完整。一般用于条件语句中。
i = 0
while i < 10:
    i = i + 1
    if i%2 == 0:
        pass
    else:
        print(i)
    
print('-----------')

for i in range(10):
    if i%2 == 0:
        pass
    else:
        print(i)

其结果是:

1
3
5
7
9
-----------
1
3
5
7
9

6 循环的嵌套

循环与循环的关系一般为并列或嵌套,只有这两种,没有相交。
嵌套是一个循环中包含另一个循环,形成循环嵌套。
# 打印九九乘法表
for i in range(10):
    for j in range(1,i+1):
        print(i,'*',j,'=',i*j,'',end='')
    print()

其结果是:

1 * 1 = 1 
2 * 1 = 2 2 * 2 = 4 
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 

7 python异常语句

程序设计应考虑各个方面的事情,避免错误。但有些时候,我们可以控制异常的情况,让语句更加稳定。

例如以下,输入了一个12b,程序无法处理,报错了。

score = float(input('请输入0-100之间成绩'))
if score < 0 or score >100:
    print('无效成绩')
elif score >= 90:
    print('杰出')
elif score >= 80:
    print('优秀')
elif score >= 60:
    print('合格')
else:
    print('不合格')

其结果是:

请输入0-100之间成绩12b
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_7072/1244601183.py in <module>
----> 1 score = float(input('请输入0-100之间成绩'))
      2 if score < 0 or score >100:
      3     print('无效成绩')
      4 elif score >= 90:
      5     print('杰出')

ValueError: could not convert string to float: '12b'

7.1 try except处理异常

try语句格式如下:
    try:
        语句1
    except Exception as err:
        语句2
    后续语句
其中except后面的语句也可以省略,不关心异常信息的话,可以简化为
    try:
        语句1
    except:
        语句2
    后续语句
try:
    score = float(input('请输入0-100之间成绩'))
    if score < 0 or score >100:
        print('无效成绩')
    elif score >= 90:
        print('杰出')
    elif score >= 80:
        print('优秀')
    elif score >= 60:
        print('合格')
    else:
        print('不合格')
except Exception as err:
    print(err)
print('end')

其结果是:

请输入0-100之间成绩12a
could not convert string to float: '12a'
end

7.2 用raise语句抛出异常

用raise语句可以抛出自己想要的异常信息,其格式如下:
    raise Exception(异常信息)
try:
    score = float(input('请输入0-100之间成绩'))
    if score < 0 or score >100:
        raise Exception('请输入0-100之间的数')
        print('无效成绩')
    elif score >= 90:
        print('杰出')
    elif score >= 80:
        print('优秀')
    elif score >= 60:
        print('合格')
    else:
        print('不合格')
except Exception as err:
    print(err)
print('end')

其结果是:

请输入0-100之间成绩-6
请输入0-100之间的数
end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值