【零基础】Python基础入门(三)

选择结构

选择结构是通过判断条件是否成立来决定执行哪一个分支。选择结构有多种形式:单分支、双分支和多分支。

结构图绘制如下:

单分支选择结构分析:

if 语句单分支结构:

if 条件表达式:
    语句/语句块
#输入一个数字,小于10,则打印这个数字
num = input("请输入一个数字:")
if int(num) < 10 :
    print(num) 

条件表达式详解:

在选择和循环结构中,条件表达式的值为 False 的情况如下: False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字 符串)、空 range 对象、空迭代对象。
其他情况,均为 True。这么看来,Python 所有的合法表达式都可以看做条件表达式,甚至
包括函数调用的表达式。

双分支选择结构分析:

if 条件表达式 :
    语句 1/语句块 1
else:
    语句 2/语句块 2
#输入一个数字,小于10,则打印该数字;大于10,则打印“数字太大”
num = input("请输入一个数字:")
if int(num)<10:
    print(num)
else:
    print("数字太大")

多分支选择结构分析:

多分支选择结构的语法格式如下:
if 条件表达式 1 :
        语句 1/语句块 1
elif 条件表达式 2:
        语句 2/语句块 2
.
.
.
elif 条件表达式 n :
        语句 n/语句块 n
[else:
        语句 n+1/语句块 n+1
]
#输入一个学生的成绩,将其转化成简单描述:不及格(小于60)、及格(60-79)、良好(80-89)、优秀(90-100)
#方法1:条件语句
score = int(input("请输入分数:"))
grade = ''
if (score<60):
    grade = "不合格"
if (60<=score<80):
    grade = "合格"
if (80<=score<90):
    grade = "良好"
if (90<=score<100):
    grade = "优秀"
    
print("分数为:{0},属于等级为:{1}".format(score,grade))

#方法2:多分支结构
score = int(input("请输入分数:"))
grade = ''
if score<60:
    grade = "不合格"
elif score<80:
    grade = "合格"
elif score<90:
    grade = "良好"
if score<100:
    grade = "优秀"
    
print("分数为:{0},属于等级为:{1}".format(score,grade))

选择结构嵌套:

选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了
代码的从属关系。
#输入一个分数。分数在 0-100 之间。90以上是A,80 以上是B,70以上是C,60以上是D,60以下是E。
score = int(input("请输入一个在 0-100 之间的数字:"))
grade = "" 
if score>100 or score<0:
    score = int(input("输入错误!请重新输入一个在 0-100 之间的数字:")) 
else:
    if score>=90:
        grade = "A" 
    elif score>=80: 
        grade = 'B'
    elif score>=70:
        grade = 'C' 
    elif score>=60: 
        grade = 'D' 
    else:
        grade = 'E'
    print("分数为{0},等级为{1}".format(score,grade))

循环结构:

循环结构用来重复执行一条或多条语句。表达这样的逻辑:如果符合条件,则反复执行循环体里的语句。在每次执行完后都会判断一次条件是否为 True,如果为 True 则重复执行循环体里的语句。同时,在循环体中应该包含改变条件表达式的语句,以使循环趋于结束;否则就会变成一个死循环。

while 循环:

#利用 while 循环打印从 0-10 的数字
num = 0
while num <= 10:
    print(num)
    num = num + 1

for 循环:

for 循环通常用于可迭代对象的遍历。
for x in (10,20,30):
    print(x*3)

可迭代对象:

1、序列。包含:字符串、列表、元组
2、字典
3、迭代器对象(iterator)
4、生成器函数(generator)
5、文件对象

range 对象:

range对象是一个迭代器对象,用来产生指定范围的数字序列。

格式为:range(start,end,[step]),生成的数值序列从 start 开始到 end 结束(不包含 end)。若没有填写 start,则默认从 0 开始。step 是可选的步长,默认为 1。

我们先来做一下简单的基本语句:

for i in range(5):
    print(i)
#产生序列:0 1 2 3 4

for i in range(1,10):
    print(i)
#产生序列:1 2 3 4 5 6 7 8 9

for i in range(1,10,2):
    print(i)
#产生序列:1 3 5 7 9

然后进一步使用循环语句:

#利用for循环,计算1-100之间数字的累加和;
#计算1-100之间偶数的累加和,计算1-100之间奇数的累加和。 

sum_all = 0 #1-100所有总数和
sum_even = 0 #1-100 偶数累加和
sum_odd = 0 #1-100 奇数累加和

for num in range(101):
    sum_all += num
    if num %2 == 0:
        sum_even += num
    else:
        sum_odd +=num
        
print("1-100 累加总和{0},奇数和{1},偶数和{2}".format(sum_all,sum_odd,sum_even))

嵌套循环和综合练习

一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。
首先打印如下图案:

for x in range(5):
    for y in range(5):
        print(x,end='\t')
    print()
还有一个很经典的,打印9x9乘法表:
for i in range(1,10):
    for m in range(1,i+1):
        print("{0}*{1}={2}".format(i,m,(i*m)),end="\t")
    print()

打印的效果如图:conti

break语句:

break 语句可用于 while 和 for 循环,用来结束整个循环。当有嵌套循环时,break 语句只
能跳出最近一层的循环。
while True:
    a = input("请输入一个字符:(Q或者q)")
    if a.upper()=='q':
        print('循环结束,退出')
        break
    else:
        print(a)

continue语句:

continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最
近的一层循环。
#要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和 薪资明细,
#以及平均薪资
empnum = 0
salarysum = 0 
salarys = []

while True:
    s = input("请输入薪资(按Q或q结束)")
    if s.upper()=='Q':
        print("录入完成,退出")
        break
    else:
        if float(s)<0:
            continue
        empnum += 1
        salarys.append(float(s))
        salarysum += float(s)

print("员工数{0}".format(empnum)) 
print("录入薪资:",salarys) 
print("平均薪资{0}".format(salarysum/empnum))
                
        

else语句:

while、for 循环可以附带一个 else 语句(可选)。如果 for、while 语句没有被 break 语句
结束,则会执行 else 子句,否则不执行。语法格式如下:

 使用zip()并行迭代:

我们可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。
names = ['Esther','Alex','Jex','Ricky']
ages =[21,22,23,24]
sexs = [0,1,1,1]

for name,age,sex in zip(names,ages,sexs): 
    print("{0}--{1}--{2}".format(name,age,sex))

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值