day06

Posted 一博女孩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day06相关的知识,希望对你有一定的参考价值。

昨日内容回顾

  • 成员运算

    in
         在
    not in
         不在
        
    
  • 身份运算

    ==
        值
    is
        地址
    """
    值相等,内存地址不一定相等
    内存地址相等,值一定相等
    """
    
  • 流程控制

    顺序结构: 从上到下,从左到右依次进行
    分支结构:if判断
    循环结构:while循环、for循环
    
    """
    代码的缩进
        在python通过缩进来表示代码的从属关系
        缩进一般采用四个空格
        并不是所有的代码都可以拥有子代码
        同属一个关键字的代码一定要保持相同的缩进量
    ps:遇到冒号 下一行代码必须缩进
    """
    
    if判断
        """
        if 条件1:
             代码1
             代码2
             ...
        elif 条件2:
              代码1
              代码2
              ... 
         else:
              代码1
              代码2
              ...
        """
     1.组合使用之后就只能走一个关键字的子代码(你走我不走,我走你们都别走)
    2.条件可以是逻辑运算符连接的多个条件
    
    ps:while嵌套
        while+break
            结束本层循环
        while+continue
            结束本次循环
        while+else
            在while没有被break主动打断的情况下正常运行结束
            则会走else
            
    for循环
        """
        for 变量名 in 可迭代对象: 字符串 列表 字典 元组...
            代码1
            代码2
            ...
        """
    补充小知识:可迭代对象
        我们已经知道可以对list、tuple、dict、set、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。
    把可以通过for...in...这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象(Iterable)。
        
        在Python中,迭代可通过for ... in来完成,例如列表的迭代:
        for num in [11, 22 , 33]:
    ...     print(num)
    ...
    11
    22
    33
    
    1.range()
        range(10)     只写一个数字则 从0开始
        range(1,10)   写两个则顾头不顾尾
        range(1,10,2) 第三个参数表示间隔几位
         https://movie.douban.com/top250?start=0&filter=
             https://movie.douban.com/top250?start=25&filter=
             https://movie.douban.com/top250?start=50&filter=
             https://movie.douban.com/top250?start=75&filter=
                for i in range(0,255,25):
                    print(\'https://movie.douban.com/top250?start=%s&filter=\'%i)
          	# 注意python2与python3的区别
            	range()
                xrange()
                
     ps:for嵌套           
         for+break
        	结束本层循环
         for+continue
        	结束本次循环
         for+else
        	在for没有被主动打断的情况下正常运行结束
            则会走else
        
    

今日内容概要

  • 作业讲解
  • 数据类型
整型与浮点型
字符串
列表
  • 可变类型与不可变类型

    今日内容讲解

    作业讲解

    """
    编写程序的思路:
        先编写程序的主体功能
        然后在思考完善
    """
    
    #猜年龄
    age = 18
    count = 0  #定义一个记录用户次数的变量
    while True:
        if count == 3:  #先判断用户当前是第几次尝试,如果已经尝试三次,则提示用户
            print(\'你已经尝试三次了\')
            choice = input(\'您已经尝试三次机会了,是否还要继续(y/n)>>>:\')
            if choice == \'y\':  #判断用户是否还要继续
                count = 0
            else:
                print(\'欢迎下次再来玩儿哟~\')
                break
        guess_age = input(\'请输入您的年龄>>>:\')
        guess_age = int(guess_age)  #将字符串的数字转为整型的数字
        if guess_age > age:
            print(\'猜大了\')
            count += 1  #加一次
        elif guess_age < age:
            print(\'猜小了\')
            count += 1  #加一次
        else:
            print(\'对了喔,真棒!\')
    

    整型与浮点型

    # 整型基本使用
    # 1、用途
        # 年龄 生日 整数类型
    # 2、定义方式
    age = 18  # age = int(18)
    # 3、类型转换
    # int()  将括号内的数据转成整型
    # print(int(123))
    # print(int(\'123\'))
    # print(int(\'[1,2,3,4]\'))
    # print(int(\'hello world\'))
    # print(int(\'11.11\'))  # 待转换的数据内部只能是纯数字
    # 4、进制转换
    # print(bin(100))  # 将十进制的100转换成二进制对应的数    0b1100100
    # print(oct(100))  # 将十进制的100转换成八进制对应的数    0o144
    # print(hex(100))  # 将十进制的100转换成十六进制对应的数  0x64
    """
    0b开头表示二进制数
    0o开头表示八进制数
    0x开头表示十六进制数
    """
    # print(int(\'0b1100100\',2))  # 100
    # print(int(\'0o144\',8))  # 100
    # print(int(\'0x64\',16))  # 100
    
    
    # 浮点型
    # 身高 体重 薪资...
    height = 183.1  # height = float(183.1)
    print(float(183.1))
    print(float(\'183.1\'))
    # print(float(\'hello world\'))
    print(float(183))  # 183.0
    print(int(11.11))  # 11
    print(int(\'11.11\'))
    

    字符串类型

    # 作用:名字,性别,国籍,地址等描述信息
    
    # 定义:在单引号\\双引号\\三引号内,由一串字符组成
    name = \'hello world!\'
    
    # 优先掌握的操作:
    # 1、按索引取值(正向取+反向取) :只能取
    \'\'\'索引是从0开始的\'\'\'
    # print(name[0])
    # print(name[-1])  # -1表示最有一个元素
    # print(name[8])
    # print(name[-4])
    # 正数表示从左往右  负数从右往左
    # 2、切片(顾头不顾尾,步长)
    \'\'\'截取某一段内容\'\'\'
    # print(name[1:4])  # 1 2 3  顾头不顾尾
    # print(name[-1:-5:-1])  # 默认的切片方向都是从左往右   -1修改成从右往左  !dlr
    # print(name[1:4:2])  # 第三个参数表示步长  el
    
    # 3、长度len
    \'\'\'统计字符串里面的字符个数\'\'\'
    # print(len(name))  # 12   空格也算字符
    
    # 4、成员运算in和not in
    # print(\'hello\' in name)
    # print(\'jason\' not in name)
    
    # 5、移除指定的首尾字符strip(******)
    # username = input(\'username>>>:\')  # \'jason \'
    # # 将首尾空格移除
    # username = username.strip()
    
    # 两步合并成一步
    # username = input(\'username>>>:\').strip()
    # if username == \'jason\':
    #     print(\'登录成功\')
    # else:
    #     print(\'登录失败\')
    # username1 = \'$$j$s$o$n$$\'
    # username2 = \'  jason  \'
    # print(username1.strip(\'$\'))  # 移除指定首、尾的所有字符
    # print(username2.strip())  # 默认移除首、尾的所有空格
    # n1 = \'$$jason$$\'
    # # 移除首指定的字符
    # print(n1.lstrip(\'$\'))  # jason$$            left
    # # 移除尾指定的字符
    # print(n1.rstrip(\'$\'))  # $$jason            right
    # 6、切分split(******)
    \'\'\'按照指定g字符串\'\'\'
    res = \'jason|123|read\'
    # print(res.split(\'|\'))  # [\'jason\', \'123\', \'read\']
    # # 1.指定切割的字符不保留
    # # 2.切割之后的结构是一个列表(重要)
    res.split(\'|\', maxsplit=1) # [\'jason\', \'123|read\']  从左往右切割指定的次数
    print(res)
    # print(res.rsplit(\'|\',maxsplit=1))  # [\'jason|123\', \'read\']  从右往左切割指定的次数
    # 7、循环
    # for i in name:
    #     print(i)  # 依次获取字符串中单个单个的字符
    
    
    # name1 = \'jason\'  # str(\'jason\')
    # print(type(str(18)))
    # print(type(str(11.11)))
    # print(type(str(\'hello\')))
    # print(type(str([1,2,3,4])))
    # print(type(str({\'name\':\'jason\'})))
    # print(type(str(True)))
    
    # res = \'My NAmE Is JASon 666\'
    # 将所有的英文字母转成大写
    # print(res.upper())  # MY NAME IS JASON 666
    # 将所有的英文字母转成小写
    # print(res.lower())  # my name is jason 666
    """图片验证码校验 忽略大小写"""
    # code = \'NaRTs6\'
    # my_code = input(\'code>>>:\')
    # if code.upper() == my_code.upper():
    #     print(\'验证码正确\')
    # print(res.isupper())  # False  字符串内部所有的英文字母是否是全大写
    # print(res.islower())  # False  字符串内部所有的英文字母是否是全小写
    
    
    # res = \'jason egon kevin tony\'
    # 判断字符串是否以jason开头
    # print(res.startswith(\'jason\'))  # True
    # 判断字符串是否以tony结尾
    # print(res.endswith(\'tony\'))  # True
    
    
    # 字符串格式化输出
    # %s %d
    # format
    # 第一种  与%s一致        按照个数位置 一一传值
    # res = \'my name is {} my age is {}\'
    # print(res.format(\'jason\',18))
    # 第二种  按照索引取值     可以反复使用
    # res = \'my name is {0} my age is {1} {0} {0} {0}\'
    # print(res.format(\'jason\',18))
    # 第三种  指名道姓取值     可以反复使用
    # res = \'my name is {name} my age is {age} {name} {name} {name}\'
    # print(res.format(name=\'jason\',age=18))
    
    
    
    # res = \'jason a a a a  sdf se sdf we ras dsa dw e asdsa dwqd sadsa dsadas\'
    # # 统计字符串中 指定字符出现的个数
    # print(res.count(\'a\'))  # 13
    # print(res.count(\'a\', 1, 10))  # 3  指定范围统计
    
    
    # res = \'my name is jason HAJHSSAJJ SAJS  \'
    # print(res.title())  # 将所有英文单词首字母大写
    # print(res.capitalize())  # 首字母大写 后面统一变小写
    
    
    # res = \'sdewqe圣诞节卡萨\'
    # print(res.isalpha())  # 判断非数字 特殊符号
    
    # 判断是否是纯数字
    # guess_age = input(\'请输入您的年龄>>>:\')
    # # 判断用户输入的是否是纯数字
    # if guess_age.isdigit():
    #     # 将字符串的数字转为整型的数字
    #     guess_age = int(guess_age)  # 暂且忽略
    # else:
    #     print(\'请输入纯数字\')
    
    
    
    # 替换
    # res = \'my name is egon egon egon\'
    # 将字符串中所有的egon替换成SB
    # print(res.replace(\'egon\',\'SB\'))  # 全局替换
    # print(res.replace(\'egon\',\'SB\',1))  # 局部替换
    
    
    
    # 将列表多个元素拼接成字符串
    # res = [\'jason\',\'egon\',\'kevin\',\'tony\']
    # res1 = [\'jason\',\'egon\',\'kevin\',\'tony\',123]
    # # print(\'|\'.join(res))  # jason|egon|kevin|tony
    # print(\'|\'.join(res1))  #  只能是字符串类型拼接
    

    列表内置方法

    # 中括号括起来 内存可以存放多个元素
    # 元素与元素之间逗号隔开 元素可以是任意数据类型
    
    name_list = [\'jason\', \'egon\', \'tony\']  # name_list = list([\'jason\', \'egon\', \'tony\'])
    # print(type(list(18)))  # 不能
    # print(type(list(11.11)))  # 不能
    # print(type(list(\'hello\')),list(\'hello\'))  # 可以    [\'h\', \'e\', \'l\', \'l\', \'o\']
    # print(type(list([1,2,3,4])))
    # print(type(list({\'name\':\'jason\'})),list({\'name\':\'jason\'}))  # 可以  [\'name\']
    # print(type(list(True)))  # 不能
    \'\'\'能够支持for循环的数据 都能够被list转换成列表\'\'\'
    
    # 1.索引取值
    # print(name_list[0])
    # print(name_list[-1])
    # 2.切片操作
    # print(name_list[0:2])
    # print(name_list[0:2:2])
    # print(name_list[-1:-3:-1])
    # 3.统计列表中元素的个数
    # print(len(name_list))  # 3
    
    
    列表元素的CURD(增删改查):
        增:
          append:默认添加到列表的最后一个位置
          inset:可以通过下标添加到列表的任意位置
        删:
          remove:根据想删除的具体内容来删除元素
          pop:根据下表元素,删除的元素还可以继续使用
          del:根据元素内容删除元素(可以删除任意对象,比如直接删除列表)
         改:
           a[1]=\'例子\'  : 直接通过下标对列表进行重新赋值达到修改元素的目的
    
    
           查: 切片 []
    print(a[1:])#取到最后
    print(a[1:-1])#取到倒数第二值
    print(a[1:-1:1])#从左到右一个一个去取
    print(a[1::2])#从左到右隔一个去取
    print(a[3::-1])从右到左(-1控制方向) 
    
    # name_list[1] = \'egon快回来!\'
    # print(name_list)
    # 末尾追加单个元素
    # name_list.append(\'kevin\')
    # print(name_list)  # [\'jason\', \'egon\', \'tony\', \'kevin\']
    # name_list.append([11,22,33,44])  # [\'jason\', \'egon\', \'tony\', [11, 22, 33, 44]]
    # print(name_list)
    # 插入元素
    # name_list.insert(0,\'jack\')
    # print(name_list)  # [\'jack\', \'jason\', \'egon\', \'tony\']
    # 扩展列表
    # l1 = [11,22,33,44,55,66,77]
    # # for i in l1:
    # # name_list.append(i)
    # # print(name_list)
    # name_list.extend(l1)  # extend等价于for+append
    # print(name_list)  # [\'jason\', \'egon\', \'tony\', 11, 22, 33, 44, 55, 66, 77]
    
    # 通用的删除操作
    # del name_list[1]
    # print(name_list)  # [\'jason\', \'tony\']
    
    # res1 = name_list.remove(\'tony\')  # 指名道姓的删除
    # print(name_list)  # [\'jason\', \'egon\']
    # print(res1)  # None
    
    # res = name_list.pop()  # 默认尾部弹出元素
    # print(name_list)  # [\'jason\', \'egon\']
    # print(res)
    
    # res = name_list.pop(1)  # 默认指定索引位置的元素
    # print(name_list)  # [\'jason\', \'tony\']
    # print(res)  # egon
    
    
    # l1 = [11,22,33,3,3,3,2,3,23,4,34,3,4,3,4]
    # print(l1.count(3))  # 6  统计列表中某个元素出现的次数
    
    # name_list.clear()  # 清空列表
    # print(name_list)  # []
    
    
    l2 = [11,88,22,44,33,77,66,55]
    # # l2.sort()  # 排序  默认是升序
    # # print(l2)  # [11, 22, 33, 44, 55, 66, 77, 88]
    # l2.sort(reverse=True)  # reverse=True 降序
    # print(l2)  # [88, 77, 66, 55, 44, 33, 22, 11]
    
    # l2.reverse()  # 倒序
    # print(l2)
    
    

    可变不可变

    """
    可变类型
        值改变 内存地址不变
    不可变类型
        值改变 内存地址一定变
    """
    # 不可变类型
    # a = 1
    # print(id(a))  # 140736875403024
    # a = 2
    # print(id(a))  # 140736875403024
    
    
    # 可变类型
    l1 = [11,22]
    print(id(l1))  # 
    l1.append(666)
    print(id(l1))  # 2133952624128
    
    

以上是关于day06的主要内容,如果未能解决你的问题,请参考以下文章

day06

Javascript代码片段在drupal中不起作用

Day 28(06/28)模块与包的调用

day06

[code] PTA 胡凡算法笔记 DAY039

导致资产预编译在heroku部署上失败的代码片段