zoukankan      html  css  js  c++  java
  • 字符串

    昨日回顾

    1. 循环
            while 条件:
                循环体(break, continue)
            循环的执行过程:
                执行到while的时候. 首先判断条件是否成立.如果成立. 执行循环体. 再一次判断条件.... 如果不成立. 直接跳出循环
    
                break 跳出当前本层循环
                continue 结束本次循环. 继续执行下一次循环
    
        2. 格式化输出
            %s 占位字符串(常用)
            %d 占位数字
            %f 占位浮点数
    
            f"{变量}"
        3. 运算符
            !=
            +=  累加   a += b  a = a + b
    
            and 并且, 左右两端同时为真. 结果才能是真
            or 或者, 左右两端有一个是真. 结果就是真
            not 非. 非真既假, 非假既真
    
            顺序: () => not => and => or
    
            x or y  =>  if x == 0 then y else x
            and和or相反
    
        4. 编码
            1. ascii   8bit   1byte  包含了 英文, 数字, 特殊字符, 特殊操作符
            2. gbk     16bit  2byte 主要包含的: 中文, 日文, 韩文, 繁体中文
            3. unicode 32bit  4byte 万国码
            4. utf-8  可变长度的
                英文: 8bit 1byte
                欧洲: 16bit 2byte
                中文: 24bit 3byte

    今日内容

    三. 今日主要内容
        1. 基本数据类型概况
            1, int 整数
            2. str 字符串
            3. bool 布尔值
            4. list 列表. 一般存放大量的数据 ["门神xxxx", "风扇哥xxxx", 元素]
            5. tuple 元组. 只读列表, 只能看啥也不能干. (元素, 元素)
            6. dict 字典. {"风扇哥":"王伟哲", "wlh": "王力宏"}
            7. set  集合 {"风扇哥", "wlh"}. 不重复
            8. bytes 一堆字节. 最小数据单元
    
        2. int类型的相关操作.
            数字没办法执行其他操作. 操作只有+-*/, //, %, **
            8bit => 1byte
            bit_length() 二进制长度
    
        3. bool类型的操作. 基本类型转换的问题
            bool类型没有操作.
            类型转换
    
            结论一: 想把xxx转化成yy类型. yy(xxx)
            结论二: 能够表示False的数据: 0, "", [], {}, set(), tuple(), None, False
        4. str 认识字符串(重点, 多)
            字符: 单一的文字符号
            字符按照固定的顺序连成串
            被' 或者" 或者''' 或者"""括起来的内容
            索引 就是编号, 顺序
                从0开始
    
            切片
                s[start:end:step]
                    start:开始
                    end: 结束  取不到
                    step: 步长, 控制方向(决定了 end 往哪个方向去取值). 每xx个取一个
    
            一大波操作.(△下面8个标注是重点,需要记忆的)
            字符串是不可变的数据类型. 不论如何操作.对原来的字符串是不会有影响的
                1, upper() 转换成大写. 忽略大小写
                2, strip() 去掉左右两端的空白(包括空格, 	 以及
    ).  所有用户输入的内容都要去空白
                    s.strip()去除两端的空格  s.strip('a')去除两端的a
                3, replace(old, new) 把old替换成new(所有的都替换)
                    replace(old, new,2)只替换2个
                4, split() 字符串切割,默认以空格 ##切出来的结果会放在列表中
                    s.split("哈") 根据所有的'哈'进行切割
                    s.split("哈",2) 根据前2个'哈'进行切割
    
                5, startswith() 判断是否以xxx开头
                6, find() 查找, 找不到返回-1
                7, isdigit() 判断是否是数字组成
                8, len() 求长度
    
            for循环遍历字符串
            for 变量 in 可迭代对象:
                循环体
    
            for c in s: # c: charactor(字符) s: string
                print(c)
    
        预习:
            列表(认识, 增删改查)
            元组
    
            思考: 质数, n位数

    嘻嘻嘻嘻嘻嘻嘻嘻 

     一.Python基本数据类型

    int ==> 整数. 主要用来进行数学运算
    
    str ==> 字符串, 可以保存少量数据并进行相应的操作
    
    bool==>判断真假, True, False
    
    list==> 存储⼤量数据.用[ ]表⽰
    
    tuple=> 元组, 不可以发⽣改变 用( )表⽰
    
    dict==>字典,保存键值对,一样可以保存⼤量数据
    
    set==> 集合, 保存⼤量数据. 不可以重复. 其实就是不保存value的dict 

     二.整数(int)

    在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型.

    在python3中不存在long类型

    整数可以进行的操作:
    bit_length(). 计算整数在内存中占用的⼆进制码的长度

     
     
    十进制 二进制

    ⻓长度bit_length() 

    1 1 1
    2 10 2
    3 11 2
    4 100 3
    5 101 3
    6 110 3
    7 111 3
    8 1000 4

     三.布尔值(bool)

    取值只有True, False. bool值没有操作.

    转换问题:

    str => int     int(str)  

    int => str     str(int)

    int => bool     bool(int). 0是False 非0是True 

    bool=>int       int(bool) True是1, False是0

    str => bool     bool(str) 空字符串是False, 不空是True

    bool => str     str(bool) 把bool值转换成相应的"值" 

    a = 10
    print(type(a)) # <class 'int'>
    d = str(a) # 把数字转换成str
    print(type(d)) # <class 'str'>
    
    
    b = "10"
    print(type(b)) # <class 'str'>
    c = int(b) # b扔到int() 得到的结果就是一个int
    print(type(c)) # <class 'int'>
    
    # 字符串 => 数字   int()
    # 数字 = > 字符串  str()
    # x => y类型  y(x)
    # 结论一: 想把xxx数据转化成yy类型的数据. yy(xxx)
     
    # 把数字转化成bool
    # 0是False, 非零是True
    a = 10
    print(bool(a)) # True
    print(bool(1)) # True
    print(bool(0)) # False
    print(bool(-1)) # True
    
    # 空字符串 表示False
    print(bool("哈哈")) # True
    print(bool(" ")) # 空格是True
    print(bool("")) # 空字符串是false
    
    # 结论二: 所有的空都可以表示False
    print(bool([])) # False 空列表
    print(bool({})) # False 空字典
    print(bool(set())) # False 空集合
    
    # None 空, 真空.
    print(bool(None))
    
    while 1:  # while True: # 底层一定会有 True => 1的过程,所以使用1要优于True
        print("还我钱")
        

     四.字符串(str)

    把字符连成串. 在python中用', ", ''', """引起来的内容被称为字符串.

    4.1 切片和索引

    1. 索引.索引就是下标.切记,下标从0开始 

     # 0123456 7 8
    s1 = "python最牛B"
    print(s1[0])  # 获取第0个
    print(s1[1])
    print(s1[2])
    print(s1[3])
    print(s1[4])
    print(s1[5])
    print(s1[6])
    print(s1[7])
    print(s1[8])  
    # print(s1[9])   # 没有9, 越界了了. 会报错 
    print(s1[-1])   # -1 表示倒数.
    print(s1[-2]) # 倒数第二个

    2. 切片,我们可以使用下标来截取部分字符串的内容

    语法: str[start: end]

    规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end 

    s2 = "python最⽜牛B"
    print(s2[0:3])  # 从0获取到3. 不包含3. 结果: pyt
    print(s2[6:8])  # 结果 最⽜
    print(s2[6:9])  # 最大是8. 但根据顾头不顾腚, 想要取到8必须给9
    print(s2[6:10]) # 如果右边已经过了最大值. 相当于获取到最后
    print(s2[4:])  # 如果想获取到最后. 那么最后一个值可以不给.
    print(s2[-1:-5])  # 从-1 获取到 -5 这样是获取不到任何结果的. 从-1向右数. 你怎么数也数不不到-5
    print(s2[-5:-1])  # ⽜b, 取到数据了. 但是. 顾头不顾腚. 怎么取最后一个呢?
    print(s2[-5:])   # 什么都不写就是最后了
    print(s2[:-1]) # 这个是取到倒数第一个
    print(s2[:])  # 原样输出

    跳着截取 

    # 跳着取, 步⻓
    print(s2[1:5:2])  # 从第一个开始取, 取到第5个,每2个取1个, 结果: yh, 分析: 1:5=>ytho => yh
    print(s2[:5:2])  # 从头开始到第五个,每两个取一个
    print(s2[4::2])  # 从4开始取到最后,每两个取一个
    print(s2[-5::2])  # 从-5取到最后,每两个取一个
    print(s2[-1:-5])  # 什么都没有,因为是从左往右取的
    print(s2[-1:-5:-1]) # 步⻓是-1. 这时就从右往左取值了
    print(s2[-5::-3])  # 从倒数第5个开始,到最开始,每3个取一个,结果是oy

    切片语法:

    #切片语法:
    str[start:end:step] 
    start: 起始位置
    end: 结束位置 
    step:步⻓
    步长: 如果是整数, 则从左往右取. 如果是负数,则从右往左取. 默认是1
    # - 倒数
    #   -8-7-6-5-4-3-2-1 索引还可以倒着数 . 起始位置 -1
    #    0 1 2 3 4 5 6 7  索引
    s = "今天中午吃胡辣汤"
    
    # 索引使用[下标]获取数据,从0开始
    print(s[3])
    print(s[2])
    
    print(s[-3])
    print(s[-6])
    
    
    # 切片, 从一个字符串中截取出一部分字符串
    # [start: end] 顾头不顾尾   end取不到
    s = "中间的,你们为什么不说话.难受"
    print(s[3:7]) # ,你们为
    print(s[5:9]) # 们为什么
    print(s[-3: -7]) # 切不到东西, 默认是从左往右切
    ##所以如果想要取到值应该满足下面的条件(总是从小的往大的去取值)
          # 步长是正数,左小右大,从左边往右去取值
          # 步长是负数,左大右小,从右边往左去取值
    print(s[-7: -3])  # 么不说话
    print(s[:6]) # 从头开始切
    print(s[6:]) # 切到末尾
    print(s[:])  # 从开始到结束
    
    
    # 步长step,  默认是1 每xxx个取一个
    # [start: end: step]
    s = "abcdefghijklmn"
    print(s[::2])#acegikm
    print(s[1:5:3])#be
    print(s[7:3]) # 取不到值. 默认步长1 从左往右切
    print(s[7:3:-1])  # hgfe  step是负数,从右往左切,结果也是从右往左的
    # step可以控制方向. 如果step是正数. 从左往右切. 如果是负数 . 从右往左切.结果也与 step 的方向是一致的
    print(s[-1:-8: -2]) # nljh
    
    s = "默念哥没吃饭哥不说话"
    print(s[3::-3]) # 这里的[3:]由于step是负值,所以是往左边的方向取到头的,结果是默念哥没     最终s[3::-3]的结果是没默
    print(s[::-1])#话说不哥饭吃没哥念默    这里就是由于 step 是-1,所以全部的字符倒着取.可以用来判断一个字符串是否是回文
    
    # 判断一句话是否是回文
    s = "黄山落叶松叶落山黄"
    s2 = s[::-1] # 翻过来
    if s == s2:
        print("是回文")
    else:
        print("不是回文")
    更多

    4.2 字符串的相关操作方法

    1. ⼤小写转来转去 

    s1.capitalize()
    print(s1) # 输出发现并没有任何的变化. 因为这里的字符串本身是不会发生改变的. 需要我们重新获取
    ret1 = s1.capitalize()
    print(ret1)
    
    # ⼤小写的转换
    ret = s1.lower() # 全部转换成小写 
    print(ret)
    
    ret = s1.upper() # 全部转换成大写 
    print(ret)
    
    # 应用, 校验用户输入的验证码是否合法
    verify_code = "abDe"
    user_verify_code = input("请输入验证码:")
    if verify_code.upper() == user_verify_code.upper():
        print("验证成功") 
    else:
        print("验证失败") 
    
    ret = s1.swapcase()  # ⼤小写互相转换
    print(ret)
    
    # 不常⽤
    ret = s1.casefold()  # 转换成小写, 和lower的区别: lower()对某些字符支持不够好.casefold()对所有字母都有效. 比如东欧的一些字母 
    print(ret)
    
    s2 = "БBß" # 俄美德 
    print(s2) 
    print(s2.lower()) 
    print(s2.casefold())
    
    # 每个被特殊字符隔开的字母首字母大写
    s3 = "alex eggon,taibai*yinwang_麻花藤"
    ret = s3.title() # Alex Eggon,Taibai*Yinwang_麻花藤 print(ret)
    
    # 中文也算是特殊字符
    s4 = "alex老男孩wusir" # Alex⽼老老男孩Wusir print(s4.title())

    2. 切来切去 

    # 居中
    s5 = "周杰伦"
    ret = s5.center(10, "*")   # 拉长成10, 把原字符串放中间.其余位置补*
    print(ret)
    
    # 更改tab的长度
    s6 = "alex wusir	eggon"
    print(s6)
    print(s6.expandtabs())  # 可以改变	的长度, 默认长度更改为8
    
    
    # 去空格
    s7 = " alex wusir    haha "
    ret = s7.strip()   # 去掉左右两端的空格
    print(ret)
    ret = s7.lstrip()  # 去掉左边空格
    print(ret)
    ret = s7.rstrip()  # 去掉右边空格
    print(ret)
    
    
    # 应⽤, 模拟用户登录. 忽略⽤户输入的空格
    username = input("请输入用户名:").strip()
    password = input("请输入密码: ").strip()
    if username == 'alex' and password == '123':
        print("登录成功") 
    else:
        print("登录失败") 
    
    s7 = "abcdefgabc"
    print(s7.strip("abc")) # defg 也可以指定去掉的元素,
    
    # 字符串替换
    s8 = "sylar_alex_taibai_wusir_eggon"
    ret = s8.replace('alex', '⾦角大王') # 把alex替换成金⻆大王
    print(s8) # sylar_alex_taibai_wusir_eggon 切记, 字符串是不可变对象. 所有操作都是产生新字符串返回
    print(ret) # sylar_⾦角大王_taibai_wusir_eggon
    
    ret = s8.replace('i', 'SB', 2) # 把i替换成SB, 替换2个 
    print(ret) # sylar_alex_taSBbaSB_wusir_eggon
    # 字符串切割 s9 = "alex,wusir,sylar,taibai,eggon" lst = s9.split(",") # 字符串切割, 根据,进行切割 print(lst) s10 = """诗⼈ 学者 感叹号 渣渣""" print(s10.split(" ")) # 用 切割 # s11 = "银王哈哈银王呵呵银王吼吼银王" lst = s11.split("银王") # ['', '哈哈', '呵呵', '吼吼', ''] 如果切割符在左右两端. 那么一 定会出现空字符串.深坑请留意 print(lst)

    3. 格式化输出 

    # 格式化输出
    s12 = "我叫%s, 今年%d岁了, 我喜欢%s" % ('sylar', 18, '周杰伦') # 之前的写法 
    print(s12)
    s12 = "我叫{}, 今年{}岁了, 我喜欢{}".format("周杰伦", 28, "周润发") # 按位置格式化 
    print(s12)
    s12 = "我叫{0}, 今年{2}岁了, 我喜欢{1}".format("周杰伦", "周润发", 28) # 指定位置 
    print(s12)
    s12 = "我叫{name}, 今年{age}岁了, 我喜欢{singer}".format(name="周杰伦", singer="周润发", age=28) # 指定关键字
    print(s12)

    4. 查找 

    s13 = "我叫sylar, 我喜欢python, java, c等编程语言."
    ret1 = s13.startswith("sylar") # 判断是否以sylar开头 print(ret1)
    ret2 = s13.startswith("我叫sylar") # 判断是否以我叫sylar开头 
    print(ret2)
    
    ret3 = s13.endswith("语言") # 是否以'语言'结尾 print(ret3)
    ret4 = s13.endswith("语言.") # 是否以'语言.'结尾 print(ret4)
    
    ret7 = s13.count("a")  # 查找"a"出现的次数
    print(ret7)
    
    ret5 = s13.find("sylar")  # 查找'sylar'出现的位置
    print(ret5)
    
    ret6 = s13.find("tory")  # 查找'tory'的位置, 如果没有返回-1
    print(ret6)
    
    
    ret7 = s13.find("a", 8, 22)  # 切⽚找  作为切片[8,22]来看
    print(ret7)
    
    ret8 = s13.index("sylar") # 求索引位置. 注意. 如果找不到索引. 程序会报错 
    print(ret8)

    5. 条件判断 

    # 条件判断
    s14 = "123.16"
    s15 = "abc"
    s16 = "_abc!@"
    # 是否由字母和数字组成  是否是由基本的文字组成,包括字母和中文,不包括数字和空格标点等
    print(s14.isalnum()) 
    print(s15.isalnum())
    print(s16.isalnum())
    # 是否由字母组成
    print(s14.isalpha())
    print(s15.isalpha())
    print(s16.isalpha())
    # 是否由数字组成, 不包括小数点
    print(s14.isdigit())  # 数字
    print(s14.isdecimal())  # 小数
    print(s14.isnumeric()) # 这个比较牛B. 中文都识别.比如一二三.也是判断数字,但是能识别用汉字表示的数字,比如壹等
    print(s15.isdigit())
    print(s16.isdigit())
     
    
    # 练习. ⽤算法判断某一个字符串是否是小数
    s17 = "-123.12"
    s17 = s17.replace("-", "") # 替换掉负号
    
    if s17.isdigit():
    
      print("是整数")
    
    else:
    
      if s17.count(".") == 1 and not s17.startswith(".") and not s17.endswith("."):
    
        print("是小数")
    
      else:
    
        print("不是小数") 

    6. 计算字符串的长度 

    s18 = "我是你的眼, 我也是a"
    ret = len(s18) # 计算字符串的长度 
    print(ret)

    注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就⾏了 

    7. 迭代

    我们可以使⽤for循环来遍历(获取)字符串中的每一个字符

    """
    语法:
    
      for 变量 in 可迭代对象: 
    
        pass
    
    可迭代对象: 可以一个一个往外取值的对象 
    """

    栗子:

    s19 = "大家好, 我是VUE, 前端的小朋友们. 你们好么?" 
    # 用while循环
    index = 0
    while index < len(s19):
    print(s19[index]) # 利用索引切片来完成字符的查找 index = index + 1
    
    # for循环, 把s19中的每一个字符拿出来赋值给前面的c 
    for c in s19:
        print(c) 
    '''
    in有两种用法:
    1. 在for中. 是把每一个元素获取到赋值给前面的变量. 
    2. 不在for中. 判断xxx是否出现在str中.
    '''
    print('VUE' in s19)
    
    # 练习, 计算在字符串"I am sylar, I'm 14 years old, I have 2 dogs!" 中的数字个数
    s20 = "I am sylar, I'm 14 years old, I have 2 dogs!"
    count = 0
    for c in s20:
        if c.isdigit():
            count = count + 1
    print(count)
    s = "abcdefg"
    s1 = s.capitalize() # 把首字母变成大写, 返回给你一个新的字符串
    print(s) # 字符串不可变. 原字符串是不会发生改变的
    print(s1)
    
    s = "alex sb dsb wusir bi1gsb"
    s2 = s.title() # 标题. 把字符串中每个单词(单词:每个被特殊字符(特殊字符:所有的非字母就是特殊字符,包括数字和中文)隔开的字⺟就是单词)的首字母大写
    print(s2)
    
    #大写
    s = "alex sb dsb bigsb"
    s3 = s.upper() # 所有的字母变成大写字母(重点)  #这个方法对所有的字母(比如欧文)都完全没问题
    print(s3)
    
    while True:
        content = input("请输入你要说的话 输入Q退出:")
        if content.upper() == "Q": # 当需要忽略大小写的时候
            break
        print("你想对打野说", content)
    
    # 验证码
    verifyCode = "aEmn"
    veri = input("请输入你的验证码(%s)" % verifyCode)
    if veri.upper() == verifyCode.upper(): # 忽略掉用户输入的大小写
        print("验证码是正确的")
    else:
        print("验证码错误")
    
    # 小写
    s = "Alex Is Not A GooD mAN"
    s4 = s.lower() # 所有的字母变成小写字母 有问题的. 对欧洲特殊文字是不识别的
    print(s4)
    #小写
    s = "Alex Is Not A GooD mAN"
    s5 = s.casefold() # 所有的字母变成小写字母,用法与lower()相同   支持特殊文字
    print(s5)
    
    s2 = "БBß" # 俄美德
    print(s2)
    print(s2.lower())
    print(s2.casefold())
    
    #大写字母变成小写字母,小写变大写
    s = "wusir 昨天 Love 了 女神. guo fen 了"
    print(s.swapcase()) # 大变小, 小变大
    
    # center()  中间. 居中
    s = "alex"
    s6 = s.center(10, "*") # 长度, 用_填充##把长度空间拉长成10,把原来的字符串放在中间,其余位置补*
    print(s6)
    
    s = "
    
    alex    is      sb      "
    print(s)
    s7 = s.strip() # 去掉左右两端的空白(空格, 	, 
    ), 中间的内容不会动
    print(s7)
    
    # 应用##所有的用户输入都应该去空(左右两端的空白)
    uname = input("请输入你用户名:").strip()  # 干掉用户的空格
    upws = input("请输入你的密码:").strip()  # 干掉用户的空格
    if uname =="alex" and upws == "123":
        print("登录成功")
    else:
        print("登录失败")
    
    s = "sbalexsbwusirsb"
    print(s.strip("sb")) # 去掉左右两端的sb
    
    # 字符串替换
    s = "       good alex good wusir good 大虾 good 胡辣汤     "
    s8 = s.replace("good", "sb")     # 把s中的good替换成sb
    print(s8)
    s9 = s.replace(" ", "")
    print(s9)
    s10 = s.replace("good", "sb", 2) # 字符串替换2次
    print(s10)
    
    # 字符串切割
    s = "alex 哈昨天哈给我们涨工资了?哈 不可能"
    lst = s.split("alex") # 切出来的结果会放在列表中, 刀的位置会损失掉(根据谁进行切割,哪里就是刀的位置,)刀如果把头了. 一定会产生空字符串(即:如果切割符在左右两端. 那么一 定会出现空字符串.深坑请留留意)
    lst1 = s.split("") #根据'爱'去切割,原字符串中不存在'爱',也不会报错
    lst2 = s.split("",2)#根据'哈'切割,但是只切割2次(即只根据前面两个'哈'去切割)
    print(lst)
    
    
    # 格式化输出
    name = "alex"
    age = 18
    hobby = "wusir"
    
    print("领导叫%s, 今年%d, 喜欢%s" % (name, age, hobby))
    print("领导叫{}, 今年{}, 喜欢{}".format(name, age, hobby))
    print("领导叫{1}, 今年{0}, 喜欢{2}".format(name, age, hobby)) # 程序员数数从0开始
    print("领导叫{na}, 今年{age}, 喜欢{hobby}".format(na = name, age = age, hobby = hobby))
    
    print(f"领导叫{name}, 今年{age}, 喜欢{hobby}")##老师推荐这种格式化方法
    
    
    # 判断字符串是否以xxx开头
    s = "java_python_区块链_大数据"
    print(s.startswith("python")) # 判断xxx是否以xxx开头.
    name = input("请输入你的名字:")  # 张开 致青春
    if name.startswith(""):
        print("领钱")
    else:
        print("不领钱")
    
    # 以xxx结尾 endwith()
    ''.isdigit()
    
    # 数数
    s = "lexa is big sb"
    print(s.count("i"))  # 计数
    
    #find()和 index()的用法是一样的,都是返回索引的位置,只不过当要查找的内容不存在的话,使用find不会报错,而inde 是会报错的
    # find() 查找, 如果存在. 返回索引. 如果不存在返回-1
    s = "滋滋冒油的猪蹄子"
    print(s.find("")) # 用这个##这里是与 index 相比较而言的,因为不会报错
    #ret7 = s.find("a", 0, 3) # 切⽚片找 [0,3]
    #print(ret7)
    # index() 如果找到了返回索引. 找不到. 报错
    print(s.index(""))
    
    s = "alexwusir"
    print(s.isalpha()) # 是否是由基本的文字组成. 是否是由字母组成(包括中文)
    
    
    # 判断是否是数字组成
    s = "123456798一" # digit 数字   %d
    print(s.isdigit()) # 阿拉伯数字
    
    s = "123456789一二三壹仟贰佰壹拾伍叁"
    print(s.isnumeric()) # number
    
    
    s = "我叫周润发,我喜欢DNF"
    print(len(s)) # 字符串长度, 内置函数
    ##老师说内置函数都不用像上面那样(例如 s.trip())前面需要加个点,那前面加个点调用的是什么?不懂
    
    
    # 把一句话中的每一个字符拿到
    s = "风扇哥门神灯神哈哈我的天哪" # len(s)
    
    # 用while循环. 获取到每一个字符
    i = 0  # 索引
    while i < len(s):
        print(s[i])
        i += 1
    
    # for循环来遍历字符串
    # for: 循环
    # c: 变量
    # in : 固定的
    # s: 你要遍历的内容
    for c in s:  # 把字符串s中的每一个元素拿到赋值给前面的c
        print(c)
    
    # for循环有一个先决条件. 必须是可迭代对象.
    # 遍历钱包
    # 缺点: 无法看到字符的索引.
    '''
    for 变量 in 可迭代对象:
        循环体(break, continue)
    '''
    更多

    今日作业

     今日作业及明日默写

  • 相关阅读:
    Leetcode 121. Best Time to Buy and Sell Stock
    Leetcode 120. Triangle
    Leetcode 26. Remove Duplicates from Sorted Array
    Leetcode 767. Reorganize String
    Leetcode 6. ZigZag Conversion
    KMP HDU 1686 Oulipo
    多重背包 HDU 2844 Coins
    Line belt 三分嵌套
    三分板子 zoj 3203
    二分板子 poj 3122 pie
  • 原文地址:https://www.cnblogs.com/lyfstorm/p/11075904.html
Copyright © 2011-2022 走看看