zoukankan      html  css  js  c++  java
  • 迭代器

    -------------笃定的知道自己想要什么  努力的追寻(1/2)
    # ---------------------------------------------------------------------------------#

    # lst = ["a","b","c","d"]
    #
    # it = lst.__iter__()
    # while 1:
    # try:
    # l = it.__next__()
    # print(l)
    # except StopIteration:
    # print("over!")
    # break
    # # ---------------------------------------------------------------------------------#
    # day11作业及默写
    #
    # 把今天的内容进行整理.把前面的知识点回顾一遍.今天作业不多.一定把时间利用好
    #
    # 1, 继续整理函数相关知识点,写博客。
    '''
    今日主要内容
    1. 第一类对象, 函数名的使用

    函数名就是变量名, 函数名存储的是函数的内存地址

    变量的命名规范:
    1. 由数字, 字母, 下划线组成
    2. 不能是数字开头, 更不能是纯数字
    3. 不能用关键字
    4. 不要太长
    5. 要有意义
    6. 不要用中文
    7. 区分大小写
    8. 驼峰或者下滑线
    2. 闭包
    闭包: 在内层函数中引入外层函数的变量
    作用:
    1. 保护变量不受侵害(javascript)
    2. 让一个变量常驻内存
    3. 迭代器
    dir() 查看变量能够执行的方法(函数)
    Iterator: 迭代器, __iter__(), __next__()
    Iterable: 可迭代的, __iter__()

    for循环的流程:
    it = lst.__iter__()
    while 1:
    try:
    el = it.__next__()
    for循环的循环体
    except StopIteration:
    break
    从迭代器中获取数据的唯一方法: __next__()

    三个特征:
    1. 省内存
    2. 惰性机制
    3. 只能往前. 不能后退
    '''


    # # ---------------------------------------------------------------------------------#
    # 2.
    # 写函数, 接收一个参数(此参数类型必须是可迭代对象), 将可迭代对象的每个元素以’_’相连接, 形成新的字符串, 并返回.
    # 例如
    # 传入的可迭代对象为[1, '老男孩', '武sir']
    # 返回的结果为’1_老男孩_武sir’

    # def conection(*args):
    # for i in args:
    # i += i.join("_")
    # print(i.strip("_"),end="")
    # conection('1', '老男孩', '武sir')


    # # ---------------------------------------------------------------------------------#
    # 3.
    # 相关面试题(先从纸上写好答案,然后在运行):
    # 1,有函数定义如下:
    #
    # def calc(a, b, c, d=1, e=2):
    # return (a + b) * (c - d) + e
    #
    # 请分别写出下列标号代码的输出结果,如果出错请写出Error。
    # print(calc(1, 2, 3, 4, 5))
    # a1 b2 c3 d4 e5
    # 3* (-1) + 5 = 2

    # _____
    # print(calc(1, 2))
    # Error。
    # ____
    # print(calc(e=4, c=5, a=2, b=3))
    # a2 b3 c5 d1 e4
    # 5 * 4 + 4 =24
    # ___
    # print(calc(1, 2, 3))
    # a1 b2 c3 d1 e 2
    # 3 * 2 +2 = 8
    # _____
    # print(calc(1, 2, 3, e=4))
    # a1 b2 c3 d1 e4
    # 3*2+4=10
    # ____
    # print(calc(1, 2, 3, d=5, 4))
    # Error
    # _____


    # def f(a, s=2):
    # return s
    # n = f(1, 99)
    # print(n)


    # # ---------------------------------------------------------------------------------#
    # 2,下面代码打印的结果分别是_________, ________, ________.
    #

    def fuc(val, lst=[]):
    lst.append(val)
    return lst

    lst1 = fuc(10)
    lst2 = fuc(123, [])
    lst3 = fuc('a')

    print('lst1=%s' % lst1) # --> lst1=[10]
    print('lst2=%s' % lst2) # --> lst2=[123]
    print('lst3=%s' % lst3) # --> lst3=['a']
    #









    # # ---------------------------------------------------------------------------------#
    # 4.
    # 打印图形

    # [图一]

    # *
    # ***
    # *****
    # *******
    # *********

    # n = 1
    # for i in range(5, -1, -1):
    # print(i * "_")
    # for j in range(1, 10, 2):
    # print("*" * j)
    # print()

    n = 8
    for i in range(1,n+1):
    print(' '*(n-i)+(2*i-1)*"*")
    #


    # for i in reversed(range(1,6)):
    # for j in range(5-i):
    # print(j*'')
    # print((2*i-1)*'*')
    #
    #
    # for i in range(10):
    # for j in range(0,i):
    # print(end=" ")
    #
    # for j in range(i,10):
    # print("*", end=" ")
    #
    # print()
    # --------------*******--------------
    # [图二]

    # *********
    # *******
    # *****
    # ***
    # *

    # n = 18
    # for i in range(1, n + 1):
    # print(' ' * (i - 1) + (n - 2*i+1) * "*" + ' ' * (i - 1))
    # --------------*******--------------


    # [图三]

    # *
    # ***
    # *****
    # *******
    # *********
    # *******
    # *****
    # ***
    # *
    # --------------*******--------------


    # [图四]

    # *********
    # *******
    # *****
    # ***
    # *
    # ***
    # *****
    # *******
    # *********
    # --------------*******--------------


    # # ---------------------------------------------------------------------------------#
    # 5. 求1 - 100内所有的质数的和(升级题)

    # sum = 0
    # i = 2
    # for i in range(2, 100):
    # j = 2
    # for j in range(2, i):
    # if (i % j == 0):
    # break
    # else:
    # # lst.append(i)
    # sum += i
    # print(sum)
    # # ---------------------------------------------------------------------------------#
    # 6.--------------------------打印菱形
    #
    # for i in range(-4,5):
    # if i <0:
    # sp=-i
    # else:
    # sp=i
    # print(' '*sp+'$'*(9-sp*2))


    # 7.--------------------------打印对顶三角形

    # for i in range(-3,4):
    # if i <0:
    # sp=-i*2+1
    # kp=' '*(i+3)
    # else:
    # sp=i*2+1
    # kp=' '*(3-i)
    #
    # print(kp+'*'*sp)

    # 8.--------------------------打印闪电
    # for i in range(-3,4):
    # if i <0:
    # sp=i+4
    # kp=-i*' '
    # elif i == 0:
    # sp=7
    # kp=''
    # else:
    # sp=4-i
    # kp=' '*3
    # print(kp+'*'*sp)

    # ========================================================================
    # 打印菱形
    # *
    # ***
    # *****
    # *******
    # *********
    # *******
    # *****
    # ***
    # *
    # 方法(一)
    # l = int(input('-->'))
    # for i in range(-l // 2, l // 2 + 1):
    # if i < 0:
    # print(' ' * (-i) + '@' * (l + 2 * i)) #有疑问:打印奇数行可以 打印偶数行不好看
    # else: # i>=0 的时候
    # print(' ' * i + '@' * (l - 2 * i))

    # 方法(二)

    # for i in range(7):
    # i = i + 1
    # if i <= 4:
    # x = 4 - i
    # else:
    # x = i - 4
    # y = 7 - 2 * x
    # print(' ' * x + '*' * y + ' ' * x)

    # [抽取规律代码]
    # n = 11
    # m = int((n+1)/2)
    # print(m)
    # for i in range(n):
    # i = i + 1
    # if i <= m:
    # x = m - i
    # else:
    # x = i - m
    # y = n - 2 * x
    # print(' ' * x + '*' * y + ' ' * x)
    #
    # # [举例代码]
    # for i in range(9):
    # i = i + 1
    # if i <= 5:
    # x = 5 - i
    # else:
    # x = i - 5
    # y = n - 2 * x
    # print(' ' * x + '*' * y + ' ' * x)

    # 方法(三)

    # 用abs绝对值算法

    # n = 6
    # for i in range(-n, n+1):
    # print(' ' * abs(i) + '*' * ((2*n+1) - 2 * abs(i)))

    # 官方老师的方法
    # for i in range(-3, 4):
    # if i<0:
    # prespace=-i
    # else:
    # prespace=i
    # print(' '*prespace + '*'*(7-prespace*2))


    # (用三元表达式描述)
    # for i in range(-3, 4):
    # prespace = -i if i < 0 else i
    # print(' ' * prespace + '*' * (7 - prespace * 2))
    # ========================================================================


    # 明日默写内容:
    # 1,什么是闭包。
    # 2,迭代器的特点。
    # 3,用while循环模拟for循环(写具体代码)。
  • 相关阅读:
    同一个ip、不同端口的两个应用,cookie竟然是可以互相访问到
    JS类型判断typeof、instanceof、Object.prototype.toString.call()
    js 控制一次加载一张图片,加载完成后再加载下一张
    cookie机制和session机制的区别
    Do not access Object.prototype method 'hasOwnProperty' from target object
    Vue 中使用mockjs模拟后端数据
    vue遍历数据字典
    this的用法
    关于html5的离线缓存(转帖)
    js正则 (二)
  • 原文地址:https://www.cnblogs.com/dealdwong2018/p/9891328.html
Copyright © 2011-2022 走看看