Python学习DAY3

第三章

程序的描述方式

1.IPO方式(前文有涉及)

2.程序流程图(学过软件工程的厚米应该很熟悉)

3.伪代码

顺序结构

赋值语句、输入输出语句都是顺序结构;

选择结构if

Python中if语句的一般形式如下所示:

if condition_1:

 statement_block_1

elif condition_2:

 statement_block_2

else: statement_block_3

  • 如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句
  • 如果 "condition_1" 为False,将判断 "condition_2"
  • 如果"condition_2" 为 True 将执行 "statement_block_2" 块语句
  • 如果 "condition_2" 为False,将执行"statement_block_3"块语句

Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else

#实例

var1 = 100

if var1:

  print ("1 - if 表达式条件为 true")

  print (var1)

var2 = 0

if var2:

  print ("2 - if 表达式条件为 true")

  print (var2)

print ("Good bye!")

执行以上代码,输出结果为:

1 - if 表达式条件为 true
100
Good bye!

注意:当我们使用if语句时,当我们只有一个语句,可直接写在冒号后;

双分支结构if-else

在python中可以简化,假设原本是:

num=eval(input('请输入中奖号码:'))

result='恭喜你中奖了'if num==123456 else'遗憾您未中奖'

可简化为:print('恭喜你中奖了'if num==123456 else'遗憾您未中奖')

多分支结构

嵌套if的使用

多个条件连接

模式匹配

模式匹配可以被简单地认为是其它语言中switch的promax版本,仅python3.11支持;

使用match来实现匹配;

循环结构

#遍历判断100-999间的水仙花数()各个位的数字立方和等于数字本身
for i in range(100,1000):
    sd=i%10
    ten=i//10%10
    bai=i//100
    if sd**3+ten**3+bai**3==i:
        print(i,'是水仙花数')

for....else结构只有在上for正常结束才会运行;

循环语句

模拟登录:

i=0

while(i<3):

      user_name=input('please input user_name')

      pwd=input('please input pwd')

      if user_name=123456 and pwd=123654:

           print('londing-------')

           i=3

      else

           i+=1

           print('chance--')

if i==3:

       print('Sorry,you have no chance!')

嵌套循环

最好嵌套层数<3,不然复杂度太高;

#输出菱形,行数为奇数,假设为7
row=eval(input('row:'))
while row%2==0:
    print('Wrong!')
    print('row again')
    row=eval(input('row:'))
top_row=(row+1)//2#上半部分top_row=4,由倒直角三角形和等边三角形构成
for i in range(1,top_row+1):#i=1,j=3;i=2,j=2;i=3,j=1;i=4,j=0;
    for j in range(1,top_row+1-i):#j:1——3
        print(' ',end=' ')
    for k in range(1,i*2):#等边三角形(1,2)(1,4)(1,6).....
        print('*',end=' ')
    print()
down_row=row//2#3
for i in range(1,down_row+1):#空格112233
    for j in range(1,i+1):
        print(' ', end=' ')
    for k in range(1,down_row*2-i*2+2):#5 3 1
        print('*',end=' ')
    print()

空心菱形的打印大致相同,只是在打印*时要加上一个判断,打印*时第一个位置和最后一个位置打印*,而其它位置打印空格即可,如下:

row=eval(input('row:'))
while row%2==0:
    print('Wrong!')
    print('row again')
    row=eval(input('row:'))
top_row=(row+1)//2#上半部分top_row=4,由倒直角三角形和等边三角形构成
for i in range(1,top_row+1):#i=1,j=3;i=2,j=2;i=3,j=1;i=4,j=0;
    for j in range(1,top_row+1-i):#j:1——3
        print(' ',end='')
    for k in range(1,i*2):#等边三角形(1,2)(1,4)(1,6).....
        if k==1 or k==i*2-1:
         print('*',end='')
        else:
            print(' ',end='')
    print()
down_row=row//2#3
for i in range(1,down_row+1):#空格112233
    for j in range(1,i+1):
        print(' ', end='')
    for k in range(1,down_row*2-i*2+2):
        if k==1 or k==down_row*2-i*2+2-1:
               print('*',end='')
        else:
               print(' ',end='')
    print()

程序跳转语句

continue就是执行到此处无视后面的代码回到循环体开头开始执行;

这里我们依然用累加求和来举例(1-100偶数累加求和):

空语句

本章总结

习题:

闰年判断

模拟10086:

99乘法表:

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值