第四天

输出行数

每一行会输出一个数字

第一行会输出1

第二行会输出2

。。。

第五行会输出5

输出符号,符号数量与行号保持一致

例如第2行出2个符号,第6行出6个符号

用到了

字符串*整数

的功能

实现符号的先递增再增减

找规律

对于总行数为5行的情况

第123行,符号的数量与行号是保持一致的。第1行打一个符号,第2行打二个符号,第3行打三个符号

第45行,符号的数量会在之前的基础上减一。第4行输出的符号会在第3行输出的符号数量上减1,第5行输出的符号会在第4行输出的符号数量上减1

第几行打印几个星星的实现

目标:

第一行,输出1

第二行,输出2

第三行,输出3

第四行,输出2

第五行,输出1

现实步骤

通过循环,先把行号输出出来

变量current_row是行号的一个变量

观察输出的规律

我们自己发现,对于总的行数为五行的情况

第123行,分别打印123个符号

第45行,符号就开始递减了

控制符号数量的变量,诞生, print_num

因为符号与行号不是一一对应的关系

所以我们不能够用当前是第几行的行号,例如当前是第4行,我们不能以数字4作为打印符号的数量(因为第4行的时候,我们应该打印2个符号)

由于上面的原因,我们需要一个变量print_num,用于控制符号打印几个。

有了这个变量,我们通过

print (符号*print_num, end='')

的方式,可以输出多个符号

因此,根据我们发现的规律

只需要让第一二三行的时候,print_num 与行号 current_num 相等就可以

第四,五行的时候,print_num 较之前的自己的值,相减1,就可

这是一个要么增,要么减的两种情况

所以我们可以使用二路分支来解决

current_row = 1  # 变量,代表第几行

while current_row <= 5:
    if current_row <= 3:
        print_num = current_row
    else:
        print_num -= 1

    print('第%d行,符号有%d个' %(current_row, print_num))
    current_row += 1

根据数字3,打印3个符号,在一行

print('0'*3, end='')

升级用变量n,打印n个符号在一行

n = 4
print('0'*n, end='')

确认代码的功能

上面的代码具有一个功能

就是打印输出一些符号,这些符号在同一行

符号的数量由变量n来决定

n的值为3,打印三个,n的值为50,打印五十个

对打印的代码进行再次修改

print_num = 4
print('0'*print_num, end='')

通过控制print_num变量

可以控制符号打印几个

再次核对功能

print_num = 4
print('0'*print_num, end='')

这两行代码的功能

是打印多个符号,当前的符号是0,当前打印符号的数量是由变量print_num来定的

print_num的值为多少

那么就会打印多少个0

所以

我们如果希望控制一行打印几个0,只需要对print_num进行数值的修改就好

打印单行多个符号的代码,上阵,使生效

current_row = 1  # 变量,代表第几行
print_num = 1
while current_row <= 5:
    if current_row <= 3:
        print_num = current_row
    else:
        print_num -= 1

    # print_num = 4
    print('0' * print_num, end='')

    print('第%d行,符号有%d个' %(current_row, print_num))
    current_row += 1

圈圈先变少,后变多

功能已实现

下一步,公式化

五行,变七行,变N行,让代码活起来

变七行

current_row = 1  # 变量,代表第几行
print_num = 1
while current_row <= 7:
# while current_row <= 5:
    if current_row <= 4:
    # if current_row <= 3:
        print_num = current_row
    else:
        print_num -= 1
    # print_num = 4
    print('0' * print_num, end='')

    print('第%d行,符号有%d个' %(current_row, print_num))
    current_row += 1

1552454303909

找到转折点

1234567,这串数字中找4

12345,这串数字中找3

123,这串数字中找2

经过对三组数字的寻找规律发现,有多种办法可以找到中间的数字

1,最大数加一后,除二

7+1= 8 8/2 = 4

5+1=6 6/2 =3

3+1 = 4 4/2 = 2

公式可归纳为

最中间的数 =(最大数+1)/2

2,最大数直接除2,取整数位,再加1

7/2 = 3.5 取3 3+1 = 4

5/2 = 2.5 取2 2+1 = 3

3/2 = 1.5 取1 1+1 = 2

公式可归纳为

最中间的数 = int(最大值/2) +1

最中间的数 = 最大值//2 +1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值