zoukankan      html  css  js  c++  java
  • 数据类型及内置方法

    一、作业

    #模拟用户登录 有三次机会 超过了 提示用户是否继续
    from_db_username = 'jason'  
    from_db_password = '123'
    n = 0
    while True:
        if n == 3:
            choice = input('三次机会已用完,你还想不想要?(y/n)>>>:')
            if choice == 'y':
                n = 0
            else:
                break
        username = input('please input your username>>>:')
        password = input('please input your password>>>:')
        if username == from_db_username and password == from_db_password:
            print('登录成功')
            break
        else:
            n += 1
    

      

    # 打印金字塔
    '''           max_level = 5
        *         current_level = 1      空格数4个     信号1个
       ***        current_level = 2      空格数3个     信号3个
      *****       current_level = 3      空格数2个     信号5个
     *******      current_level = 4      空格数1个     信号7个
    *********     current_level = 5      空格数0个     信号9个
    '''
    max_level = 10
    for current_level in range(1,max_level+1):
        # 打印空格
        for i in range(max_level-current_level):
            print(' ',end='')
        # 打印星号
        for j in range(2*current_level-1):
            print('*',end='')
        print()
    

      二、整型与浮点型

    #用途:存qq号,手机号,不带字母的身份证号...
    #定义方式
    age = 18  # age = int(18)
    # int('dsjfjdsf')
    # int('1.1')  # int只能转纯数字的字符串,小数点都不行
    

     

    # 进制转换
    
    # 其他进制转10进制
    # 二进制转十进制  0,1
    # 10  # 1*(2**1) + 0*(2**0)  2
    # 八进制转十进制  0-7
    # 235 # 2*(8**2) + 3*(8**1) + 5*(8**0)
    # 十六进制转十进制 0-9 A-F
    # 217 # 2*(16**2) + 1*(16**1) + 7*(16**0)
    print(int('1100',2))  # int可以传第二个参数,表示的是第一个参数到底是什么进制  然后转成十进制
    print(int('14',8))  #要转换的数组必须要用引号引起来
    print(int('c',16))
    
    # 10进制转其他进制
    # 10进制转二进制
    # print(bin(12))  # 0b1100  0b表示后面的数字是二进制数
    # 10进制转八进制
    # print(oct(12))  # 0o14  0o表示后面的数字是八进制数  14 >>> 1*(8**1) + 4*(8**0))
    # 10进制转16进制
    # print(hex(12))  # 0xc  0x表示后面的数字是十六进制数
    

      

    # 可变类型与不可变类型
    """
    可变类型:值改变的情况下,id不变,说明你改的是原值
    不可变类型:值改变的情况下,id一定变
    """
    x = 10
    print(id(x))
    x = 11
    print(id(x))
    

      

    # salary = 1.1  # float(1.1)
    res = float('1.11')
    print(type(res))
    a = float('1')
    print(type(a))
    #int只能将纯数字的字符串转换成整型,而float既可以将纯数字的字符串转换成浮点型,也可以将带小数点和数字的字符串转换成浮点型
    

      

    三、字符串

    #用途:描述性
    #定义方式:'',"",""""""
    # s = 'hello baby'  # str('hello baby')
    # s1 = str([1,2,3,4])
    # print(type(s1))
    # s2 = str({'name':'jason','password':123})
    # print(type(s2))
    

      

    #1、按索引取值(正向取+反向取) :只能取
    # s = 'hello big baby~'
    # print(s[0])
    #2、切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串
    # 左边的固定就是头,右边固定就是位  没有说按数字来分头尾
    # print(s[0:5])  # hello
    # print(s[0:10:1])  # hello  步长不写默认是1
    # print(s[0:10:2])  # 步长表示隔几个取一个
    # 了解负数取值
    # print(s[-1])
    # print(s[0:5:-2])  # 切片取值默认是从左往右的
    # print(s[5:0:-1])  # 切片取值默认是从左往右的
    # print(s[-1:-10:-1])
    #3、长度len:统计的是字符串中字符的个数
    # s1 = ' '
    # print(len(s1))
    #4、成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中
    # print('egon' in 'egon is dsb and egon is sb')
    # print('g' in 'egon is dsb and egon is sb')
    # print('jason' not in 'egon is dsb and egon is sb')
    #5、去掉字符串左右两边的字符strip,不管中间的
    # username = input('>>>:').strip()
    # if username == 'jason':
    #     print('good job')
    # strip()默认去除字符串首尾的空格
    # 使用内置的方法统一采用 句点符(.)
    # name1 = 'jason'
    # name2 = '   jason   '.strip()
    # print(name1 == name2)
    # name3 = '$$$$$eg$on$$$$'
    # print(name3.strip('$'))
    # 了解即可
    # name4 = '% ¥#jason&*)'
    # print(name4.strip('% ¥#)'))
    # rstrip() lstrip()
    # name5 = '$$$$jason$$$$'
    # print(name5.lstrip('$'))  # left左边
    # print(name5.rstrip('$'))  # right右边
    #6、切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值
    # data = 'jaso n|123| handsome'
    # print(data.split('|'))
    # username,password,info = data.split('|')
    # print(username,password,info)
    # 强调:split切分出来的数据类型是一个列表
    # print(data.split('o'))  # 切割的顺序其实从左往右的
    # print(data.split('o',1))  # 切割的顺序其实从左往右的
    # print(data.rsplit('o',1))  # 切割的顺序其实从左往右的
    # 如果不指定那么split和rsplit效果是一样
    #7、循环
    # for i in data:
    #     print(i)
    
    # 需要你掌握的
    #1、strip,lstrip,rstrip
    #2、lower,upper
    # s = 'JaS1oN'
    # res = s.lower()
    # print(res)
    # print(s)
    # print(s.upper())
    # print(s)
    # 调用字符串的方法并没有改变字符串本身
    
    
    #3、startswith,endswith
    # s1 = 'egon is dsb'
    # print(s1.startswith('e'))  # 判断字符串是否以什么什么开头
    # print(s1.endswith('n'))  # 判断字符串是否以什么什么结尾
    
    
    #4、format的三种玩法(python推荐使用format做格式化输出)
    # 第一种  按位置占位   跟%s原理一致
    # str1 = 'my name is {} my age is {}'.format('jason',18)
    # str1 = 'my name is {} my age is {}'.format(18,'jason',)
    # print(str1)
    # 第二种  按索引占位
    # str1 = 'my {1} name is {0} my {0} age is {0}'.format('egon',18)
    # print(str1)
    # 第三种  指名道姓占位(关键字传参)
    # str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='jason',age=18)
    # # print(str1)
    
    #5、split,rsplit
    #6、join
    # data = 'jason|123|handsome'
    # res_list = data.split('|')
    # print(res_list)
    #
    # res_str = '$'.join(res_list)  # 将容器类型中的多个元素通过指定字符拼接成一个字符串
    # print(res_str)
    # l = ['1','a','b']
    # res = '|'.join(l)
    # print(res)
    
    #7、replace
    # str = 'egon is dsb and egon is sb he has a BENZ'
    # res = str.replace('egon','kevin',1)
    # print(res)
    # print(str)
    
    
    #8、isdigit # 判断字符串中包含的是否为纯数字
    # while True:
    #     age = input('>>>:')
    #     if age.isdigit():
    #         age = int(age)
    #         if age > 28:
    #             print('阿姨好')
    #     else:
    #         print('你他妈的能不能好好输')
    
    # 需要了解的内置方法
    #1、find,rfind,index,rindex,count
    s = 'kevin is dsb o and kevin is sb'
    # print(s.find('dsb'))  # 返回的是d字符所在的索引值
    # print(s.find('xxx'))  # 找不到的时候不报错返回的是-1
    # print(s.find('i',0,3))  # 还可以通过索引来限制查找范围
    # print(s.index('o'))  # 返回所传字符所在的索引值
    # print(s.index('i',0,3))  # 返回所传字符所在的索引值
    # print(s.count('n'))  # 统计字符出现的次数
    
    
    #2、center,ljust,rjust,zfill
    s9 = 'jason'
    # print(s9.center(12,'*'))
    # print(s9.ljust(40,'$'))
    # print(s9.rjust(40,'$'))
    # print(s9.rjust(40,' '))
    # print(s9.zfill(40))
    
    #3、expandtabs
    
    # s10 = 'a	bc'
    # print(s10.expandtabs(100))
    
    #4、captalize,swapcase,title
    # s12 = 'hElLo WoRLD sH10'
    # print(s12.capitalize())  # Hello world 首字母大写
    # print(s12.swapcase())  # 大小写互换
    # print(s12.title())  # 每个单词的首字母大小
    
    #5、is数字系列
    num1=b'4' #bytes
    num2=u'4' #unicode,python3中无需加u就是unicode
    num3='壹' #中文数字
    num4='Ⅳ' #罗马数字
    # ''.isnumeric(): unicode,中文数字,罗马数字    只要是表示数字都识别
    print(num2.isnumeric())
    print(num3.isnumeric())
    print(num4.isnumeric())
    
    # ''.isdecimal(): unicode   只识别普通的阿拉伯数字
    print(num2.isdecimal())
    print(num3.isdecimal())
    print(num4.isdecimal())
    
    # ''.isdigit() :bytes,unicode    通常情况下使用isdigit就已经满足需求了
    print(num1.isdigit())
    print(num2.isdigit())
    print(num3.isdigit())
    print(num4.isdigit())
    

      

    四、列表

    #作用:多个装备,多个爱好,多门课程,多个女朋友等
    #定义:[]内可以有多个任意类型的值,逗号分隔
    # my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本质my_girl_friends=list([...])
    # 或
    # l=list('abc')
    # l1=list({'name':'jason','password':'123'})
    # print(l1)
    # list内部原理就是for循环取值 然后一个个塞到列表中去
    
    
    #优先掌握的操作:
    #1、按索引存取值(正向存取+反向存取):即可存也可以取
    # l = [1,2,3,4]
    # print(l[0:4:1])
    # print(l[0::])
    # print(l[5::-1])
    # print(id(l))
    # l[0] = 69
    # print(id(l))
    # print(l)
    #2、切片(顾头不顾尾,步长)
    l = [11,22,33,44,55]
    l1 = [99,88,77,66]
    # [11,22,33,44,55,99,88,77,66]
    
    # 1.尾部添加一个66
    # l.append(66)  # 注意append值能将被添加的数据当作列表的一个元素
    # print(l)
    
    # 2.任意位置添加元素
    # l.insert(2,96)  # 通过索引在任意位置添加元素
    # print(l)  # 注意insert值能将被添加的数据当作列表的一个元素
    
    # 3.添加容器类型数据
    # l.append(l1)
    # l.insert(-1,l1)
    # l.extend(l1)  # 内部原理for循环l1一个个追加到列表的尾部
    # l.extend([1,])
    # print(l)
    
    #3、长度
    # print(len(l))
    #4、成员运算in和not in
    # print( 444 in l)
    #5、往列表中添加元素(******)
    # append
    # insert
    # extend
    
    #6、删除
    # print(l)
    # del l[2]  # del适用于所有的删除操作
    # print(l)
    
    
    
    # res1 = l.pop()  # 尾部弹出
    # res2 = l.pop()
    # res3 = l.pop()
    # print(res1,res2,res3)
    
    
    # res1 = l.pop(0)  # 可以指定索引 按照索引弹出元素
    # print(res1)
    
    
    # res = l.remove(33)  # 指定要删除的元素的值
    # print(l)
    # print(res)
    
    # s = 'haha'
    # print(s)
    # del s
    # print(s)
    #7、循环
    for i in l:
        print(i)
    

      

  • 相关阅读:
    回文链表
    istringstream
    编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个对立的元素存于vector中
    c++ primer,友元函数上的一个例子(By Sybase)
    类的静态成员
    聚合类和字面值常量类
    隐式的类类型转换
    构造函数
    类的作用域
    类的其他特性
  • 原文地址:https://www.cnblogs.com/DcentMan/p/11127171.html
Copyright © 2011-2022 走看看