zoukankan      html  css  js  c++  java
  • 20181121笔记(for,数字类型和字符串类型的内置方法)

    1、for循环

    for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

    for循环字典时默认取出key:

    dic={'x':111,'y':222,'z:333'}

    for k in dic:

    print(k)  #只输出k

    print(k,dic[k])  # 同时输出key和value

    while循环 VS for循环

    ①while循环:称之为条件循环,循环的次数取决于条件何时Flase

    for循环:称之为迭代器循环,循环的次数取决于数据包含元素的个数

    ②for循环专门用来取值,在循环取值方面比while循环要强大,以后但凡遇到循环取值的场景,就应该用for循环。

    for循环的搭配:

    Ⅰ for+break

     names=['egon','kevin','alex','hulaoshi']
    for name in names:
        if name == 'alex':break
        print(name)
    输出结果:
    egon
    kevin

    Ⅱ for+continue

    names=['egon','kevin','alex','hulaoshi']
    for name in names:
       if name == 'alex':continue
       print(name)
    输出结果:
    egon
    kevin
    hulaoshi

    Ⅲ for+else

    names=['egon','kevin','alex','hulaoshi']
    for name in names:
       print(name)
    else:
       print('=====>')
    输出结果:
    egon
    kevin
    alex
    hulaoshi
    =====>

    Ⅳ 循环嵌套

    for i in range(3): 
       for j in range(2):
           print(i,j)
    '''
    外层循环第一次:i=0
      内层循环
          0,0
          0,1
           
    外层循环第二次:i=1
      内层循环
          1,0
          1,1
    外层循环第三次: i=2
      内层循环
          2,0
          2,1
           

    '''

    tip: range(start,end):start可以为空,默认起始为0;end不可为空。输出结果顾头不顾尾

    range(0,3) # 等于range(5)
    print(range(5))
    0
    1
    2

    换行问题之print()详解:

    print()语法:
    print(*objects, sep=' ', end=' ', file=sys.stdout)
    参数含义:
    objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
    sep -- 用来间隔多个对象,默认值是一个空格。
    end -- 用来设定以什么结尾。默认值是换行符 ,我们可以换成其他字符串。
    file -- 要写入的文件对象。
    一些例子:
    print('www','z','cn')
    print('www','z','cn',sep='.')
    输出结果:
    www z cn
    www.z.cn
    for i in range(0,3):
       print(i)    # 默认换行,即print(i, end=' ')
    输出结果:
    0
    1
    2
    for i in range(0,3):
       print(i,end=' ')  # end处为空格
    输出结果:
    0 1 2

    len() 方法返回对象(字符、列表、元组等)长度或项目个数。

    len(‘1,2,3,4’)  # 输出结果为7,如果改为len(‘1 2 3 4’)输出结果也为7,因为空格也占位;
    len(‘1234’)  # 输出结果为4;格式为len(str),注意空格也算长度。
    2.数据类型及内置方法:
    tip:进制之间的转换
    十进制转成。。。进制
    print(bin(13))  # 十进制转换为二进制
    print(oct(13))  # 十进制转换为八进制
    print(hex(13))  # 十进制转换为十六进制
    输出结果:
    0b1101   # 0b表示二进制
    0o15     # 0o表示八进制
    0xd      # 0x表示十六进制

     

     1. 整型int
    ======================================基本使用======================================
    1、用途:记录年龄、等级、号码等

    2、定义方式
    age=10 # age=int(10)

    类型转换
    print(int(3.1))
    print(int('123'))   # 对于纯数字的字符串,可以使用
    print(int('122.2')) # 并非纯数字构成,会报错

    ======================================该类型总结====================================
    每个变量名只能存一个值
    不可变类型
    x=10
    print(id(x))
    x=11
    print(id(x))   # 值改变,id也会变化


    2. 浮点型float
    ======================================基本使用======================================
    1、用途:记录身高、体重、薪资等

    2、定义方式
    salary=10.1 # salary=float(10.1)

    类型转换
    print(float(10))
    print(float(1.1))
    print(float('1.1'))

    ======================================该类型总结====================================
    每一个变量名只能对应一个值
    不可变类型
    x=10.3
    print(id(x))
    x=11.2
    print(id(x))
    3.字符串类型str
    ======================================基本使用======================================
    1、用途:记录描述性值的状态,比如名字、性别等

    2、定义方式
    msg='hello world' #msg=str('hello world')

    类型转换: 可以把任意类型专场字符串类型
    res1=str(10)
    res2=str(10.3)
    res3=str([1,2,3])
    res4=str({'x':1}) #res4="{'x':1}"

    3、常用操作+内置的方法
    优先掌握的操作:(*****
    按索引取值(正向取+反向取) :只能取
    msg='hello world'
    print(type(msg[0]))
    print(msg[-1])
    输出结果:
    <class 'str'>
    d


    切片(顾头不顾尾,步长)
    msg='hello world'
    print(msg[0]+msg[1]+msg[2])
    print(msg[0:5])
    print(msg[0:5:2]) #"""0 2 4 步长可以为负,但不可以为0。对于正数步长,python会从序列的头部开始向右提取元素,直到最后一个元素,对于负数步长,则是从序列尾部开始向左提取元素,直到第一个元素。正数步长必须让开始点小于结束点,而负数步长必须让开始点大于结束点。"""

    print(msg[0:]) #输出全部
    print(msg[:])  #输出全部

    print(msg[-1:-5:-1]) #-1 -2 -3 -4
    print(msg[::-1]) #-1 -2 -3 -4

    长度len:统计的是字符的个数
    msg='h你d'
    print(len(msg))  #输出结果为3

    成员运算in和not in:判断一个子字符串是否存在与一个大字符串中
    msg='hello world'
    print('ho' in msg)
    print('ho' not in msg)


    移除空白strip:移除字符串左右两边的某些字符
    strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
    注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
    str.strip([chars])  # chars -- 移除字符串头尾指定的字符序列。

    msg='     hello     '
    print(msg.strip(' '))
    print(msg.strip())
    print(msg)

    msg='***h**ello**********'
    print(msg.strip('*'))

    msg='*-=+h/ello*(_+__'
    print(msg.strip('*-=+/(_'))


    切分split: 把有规律的字符串切成列表从而方便取值。
      split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
    info='egon:18:180:150'
    res=info.split(':',1) # 仅分割一个
    print(res)
    print(res[1])
    输出结果:
    ['egon', '18:180:150']
    18:180:150

    info='egon:18:180:150'
    res=info.split(':')
    print(res)
    输出结果:
    ['egon', '18', '180', '150']

    join:join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
    res=['egon','18','180','150']
    s1=':'.join(res)  # res中的元素必须都是字符串
    print(s1)
    输出结果:
    egon:18:180:150


    循环
    for i in 'hello':
        print(i)



    # 需要掌握的操作(****)
    1、strip,lstrip,rstrip
    msg='*****hello****'
    print(msg.strip('*'))
    print(msg.lstrip('*'))
    print(msg.rstrip('*'))
    输出结果:
    hello
    hello****
    *****hello

    2、lower,upper
    msg='AaBbCc123123123'
    print(msg.lower())
    print(msg.upper())
    输出结果:
    aabbcc123123123
    AABBCC123123123

    3、startswith,endswith
    msg='alex is dsb'
    print(msg.startswith('alex'))
    print(msg.endswith('sb'))
    输出结果:
     True
     True

    4、format的三种玩法
    msg='my name is %s my age is %s' %('egon',18)
    print(msg)
    输出:my name is egon my age is 18
    msg='my name is {name} my age is {age}'.format(age=18,name='egon')
    print(msg)
    输出:my name is egon my age is 18
    了解
    msg='my name is {} my age is {}'.format(18,'egon')
    msg='my name is {0}{0} my age is {1}{1}{1}'.format(18,'egon')
    输出:
    my name is 18 my age is egon
    my name is 1818 my age is egonegonegon


    5、split,rsplit
    cmd='get|a.txt|33333'
    print(cmd.split('|',1))
    print(cmd.rsplit('|',1))
    输出:
    ['get', 'a.txt|33333']
    ['get|a.txt', '33333']

    6、replace
    msg='kevin is sb kevin kevin'
    print(msg.replace('kevin','sb',2))
    输出结果:
    sb is sb sb kevin

    7、isdigit #当字符串内为纯数字时结果为True
    res='11111'
    print(res.isdigit())
    输出:True





    # 了解(**)
    1、find,rfind,index,rindex,count
    find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。index功能类似,但是如果没有检索到,会报错。
    print('xxxkevin is sb kevin'.find('kevin')) #输出索引位置
    print('xxxkevin is sb kevin'.index('kevin'))
    print('xxxkevin is sb kevin'.rfind('kevin'))
    print('xxxkevin is sb kevin'.rindex('kevin'))
    输出结果:
    3
    3
    15
    15

    print('kevin is kevin is kevin is sb'.count('kevin')) #计次
    输出结果为3

    2、center,ljust,rjust,zfill
    print('egon'.center(10,'*'))  # 字符居中
    print('egon'.ljust(10,'*'))   # 字符居左
    print('egon'.rjust(10,'*'))   # 字符居右
    print('egon'.zfill(10))       # 原字符串右对齐,前面填充0
    输出结果:
    ***egon***
    egon******
    ******egon
    000000egon

    3、captalize,swapcase,title
    print('my name is kevin'.capitalize()) #句首字母大写
    print('AaBbCc'.swapcase())          #大小写字母互换
    print('my name is kevin'.title())    # 所有单词首字母
    输出结果:
    My name is kevin
    aAbBcC
    My Name Is Kevin

    4、is其他
    name='egon123'
    print(name.isalnum()) #字符串由字母或数字组成 ====》True
    print(name.isalpha()) #字符串只由字母组成     ====》 False

    print(name.islower())  # ===》True
    print(name.isupper())  # ===》False
    name='   '
    print(name.isspace())  #===》True
    msg='I Am Egon'
    print(msg.istitle())   # ===》True




    ======================================该类型总结====================================
    存一个值

    有序类型(虽然只存一个值,但也是有序序列)

    不可变类型(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
    x='aaa'
    print(id(x))
    x='bbb'
    print(id(x))

     

     

     

  • 相关阅读:
    dom解析和sax解析
    pull解析和sax解析的区别
    HashMap和HashTable的区别
    Java Socket通信原理简介
    Socket通信原理简介
    Android获取网络连接状态(3G/Wifi)及调用网络配置界面
    Android布局控件之LinearLayout
    onAttachedToWindow () 和 onDetachedFromWindow () ; 以及更新视图的函数ondraw() 和dispatchdraw()的区别
    Android开源界面库--ResideMenu用法
    iOS如何接收服务端返回的布尔值
  • 原文地址:https://www.cnblogs.com/realadmin/p/9996241.html
Copyright © 2011-2022 走看看