【在校课堂笔记】Python 第5节课 总结

发布于:2025-03-19 ⋅ 阅读:(23) ⋅ 点赞:(0)

- 第 81 篇 -
Date: 2025 - 03 - 17
Author: 郑龙浩/仟濹
【Python 在校课堂笔记】

南山 - Python 第5节课

2025-03-17 上课

一 range 的各种使用

  • range(n): n为整数,范围: 0 ~ n-1,步长: +1
  • range(a, n): a, n为整数范围: a ~ n - 1, 步长 + 1
  • range(a, n, b): a, n为整数范围: a ~ n - 1, 步长 +b(可步长以为负数)
print(list(range(5)))
print(list(range(1, 5)))
print(list(range(1, 5, 2)))
print(list(range(5, 1, -1)))
# 打印结果
[0, 1, 2, 3, 4]
[1, 2, 3, 4]
[1, 3]
[5, 4, 3, 2]

二 上次作业

sum = 0
for i in range(1, 12, 2):
    sum += i
print(f"1+3+5+7+9+11的答案: {sum}")

三 斐波那契数列

知识点:range() 的应用以及 for 的使用

代码1 - 不优化

a, b = 1, 1
print(a, b, end = ' ')
for i in range(8):
	c = a + b
    a, b = b, c
    print(c, end = ' ')
# 打印结果
1 1 2 3 5 8 13 21 34 55 

代码2 - 优化版

a, b = 1, 1
for i in range(8:
    print(a, end = ' ')
    a, b = b, a + b
# 打印结果
1 1 2 3 5 8 13 21

四 打印图形

知识点:嵌套 for 循环,range() 的使用,i j 分别控制行 列

for i in range(5): # 外层循环
    for j in range(5): # 内层循环
        print('*', end = ' ')
    print()

# 打印结果 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
for i in range(5):
    for j in range(i):
        print('*', end = ' ')
    print()
# 打印结果
* 
* * 
* * * 
* * * * 
for i in range(5):
    for j in range(5 - i, 0, -1):
        print('*', end = ' ')
    print()
# 打印结果
* * * * * 
* * * * 
* * * 
* * 
* 

五 九九乘法表

知识点:嵌套 for 循环,控制打印宽度,range() 的使用,i 与 j 控制行列的能力

for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{j} × {i} = {j * i:<3}', end=' ')
    print()
# 打印结果
1 × 1 = 1   
1 × 2 = 2   2 × 2 = 4   
1 × 3 = 3   2 × 3 = 6   3 × 3 = 9   
1 × 4 = 4   2 × 4 = 8   3 × 4 = 12  4 × 4 = 16  
1 × 5 = 5   2 × 5 = 10  3 × 5 = 15  4 × 5 = 20  5 × 5 = 25  
1 × 6 = 6   2 × 6 = 12  3 × 6 = 18  4 × 6 = 24  5 × 6 = 30  6 × 6 = 36  
1 × 7 = 7   2 × 7 = 14  3 × 7 = 21  4 × 7 = 28  5 × 7 = 35  6 × 7 = 42  7 × 7 = 49  
1 × 8 = 8   2 × 8 = 16  3 × 8 = 24  4 × 8 = 32  5 × 8 = 40  6 × 8 = 48  7 × 8 = 56  8 × 8 = 64  
1 × 9 = 9   2 × 9 = 18  3 × 9 = 27  4 × 9 = 36  5 × 9 = 45  6 × 9 = 54  7 × 9 = 63  8 × 9 = 72  9 × 9 = 81  

六 百钱百鸡

知识点:嵌套 for 循环,range() 的应用,化应用题为数学和代码

for i in range(1, 21):
    for j in range(1, 34):
        k = 100 - i - j
        if 5 * i + 3 * j + (1 / 3) * k == 100:
            print(i, j, k)
# 打印结果
8 11 81
12 4 84

七 作业

题目

编程输出,1000之内与4相关的数(与4相关的含义:4的倍数或者个位为4,十位有4或者百位有4)

方法 1

# 方法1
num = 0 # 与 4 相关的数的个数
for i in range(4, 1000):
    # i // 100 --> 截掉十位和个位, 只取百位
    # i // 10 --> 截掉个位,只取百位和十位  i // 10 % 10 --> 已经截掉了个位,只保留了百位和十位,然后 % 10 取出来的就是十位
    # i % 10 --> 只取个位
    if i // 100 == 4 or i // 10 % 10 == 4 or i % 10 == 4 or i % 4 == 0: # 判断条件 百位,十位,个位, 倍数
        print(f'{i:<3}', end = ' ')
        num += 1
        if num % 30 == 0: # 打印太多太长了,所以一行30个
            print()

方法 2

# 方法2
# 提前将计算结果存下来,以免if太长,太乱
num = 0 # 与 4 相关的数的个数
for i in range(4, 1000):
    # i // 100 --> 截掉十位和个位, 只取百位
    a = i // 100 == 4
    # i // 10 --> 截掉个位,只取百位和十位  i // 10 % 10 --> 已经截掉了个位,只保留了百位和十位,然后 % 10 取出来的就是十位
    b = i // 10 % 10 == 4
    # i % 10 --> 只取个位
    c = i % 10 == 4
    # 判断 4 的倍数
    d = i % 4 == 0
    if a or b  or c or d: # 判断条件 百位,十位,个位, 倍数
        print(f'{i:<3}', end = ' ')
        num += 1
        if num % 30 == 0: # 打印太多太长了,所以一行30个
            print()

方法 3

# 方法3
num = 0 # 与 4 相关的数的个数
for i in range(4, 1000):
    # str(i).count('4') 先将 i 变为字符串,然后判断字符串中是否存在 数字字符'4'
    if i % 4 == 0 or str(i).count('4') >= 1: # 判断条件
        print(i, end = ' ')
        num += 1
        if num % 30 == 0: # 打印太多太长了,所以一行30个
            print()

打印结果

4   8   12  14  16  20  24  28  32  34  36  40  41  42  43  44  45  46  47  48  49  52  54  56  60  64  68  72  74  76  
80  84  88  92  94  96  100 104 108 112 114 116 120 124 128 132 134 136 140 141 142 143 144 145 146 147 148 149 152 154 
156 160 164 168 172 174 176 180 184 188 192 194 196 200 204 208 212 214 216 220 224 228 232 234 236 240 241 242 243 244 
245 246 247 248 249 252 254 256 260 264 268 272 274 276 280 284 288 292 294 296 300 304 308 312 314 316 320 324 328 332 
334 336 340 341 342 343 344 345 346 347 348 349 352 354 356 360 364 368 372 374 376 380 384 388 392 394 396 400 401 402 
403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 
433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 
463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 
493 494 495 496 497 498 499 500 504 508 512 514 516 520 524 528 532 534 536 540 541 542 543 544 545 546 547 548 549 552 
554 556 560 564 568 572 574 576 580 584 588 592 594 596 600 604 608 612 614 616 620 624 628 632 634 636 640 641 642 643 
644 645 646 647 648 649 652 654 656 660 664 668 672 674 676 680 684 688 692 694 696 700 704 708 712 714 716 720 724 728 
732 734 736 740 741 742 743 744 745 746 747 748 749 752 754 756 760 764 768 772 774 776 780 784 788 792 794 796 800 804 
808 812 814 816 820 824 828 832 834 836 840 841 842 843 844 845 846 847 848 849 852 854 856 860 864 868 872 874 876 880 
884 888 892 894 896 900 904 908 912 914 916 920 924 928 932 934 936 940 941 942 943 944 945 946 947 948 949 952 954 956 
960 964 968 972 974 976 980 984 988 992 994 996

网站公告

今日签到

点亮在社区的每一天
去签到