美文网首页
12-27 day4获取字符,字符串相关运算,格式字符串,类型

12-27 day4获取字符,字符串相关运算,格式字符串,类型

作者: ychaochaochao | 来源:发表于2018-12-27 19:06 被阅读0次

    1.getchar --获取字符

    1.获取单个字符

    • 字符串中的每一个字符都会对应一个唯一的下标(索引)用来表示字符在字符串中的位置
      下标是从0开始依次增加,0对应的是第一个字符(0 -- 字符串长度-1);
      也可以从-1开始依次减少,-1对应的是最后一个字符(-1 -- 字符串长度)
      例如:'hello' -> h->(0,-5 ) e->(1,-4) l->(3,-3) l->(4,-2) o->(4,-1)

    • a.语法:
      字符串[下标] - 获取字符串中指定下标对应的字符

    • b.说明:

    • 字符串 - 只要结果是字符串的表达式都可以,例如:字符串字面量、字符串变量
      [] - 固定写法

    • 下标 - 需要获取的字符对应的下标,注意:这儿的下标不能越界

    result = 'how are you!'[0]  #获取字符中下标是0的字符并赋值给变量result
    print(result)   #h
    print('how are you!'[-4])  #y
    

    print('how are you!'[14]) #IndexError: string index out of range 下标越界

    str1 = 'good good study!day day up!'
    print(str1[10],str1[-2])  #s p
    

    2.获取部分字符(字符串切片)

    方法1.

    • a.语法:
      字符串[开始下标;结束下标;步长]

    • b.说明:
      -从开始下标开始获取到结束下标前为止,每次下标值加上步长获取下一个

    • 字符串 - 只要结果是字符串的表达式都可以,例如:字符串字面量、字符串变量
      [ ;] - 固定写法

    • 开始下标、结束下标 - 下标值(这儿的下标可以越界)

    • 步长 - 必须是整数,正数和负数都行,
      如果步长是正数,是从开始下标开始从前往后获取;
      如果步长是负数,是从开始下标开始从后往前获取

    • c.注意:
      当步长为正,要求开始下标对应的字符的位置必须在结束下标对应的字符的位置前面。否则结果为空
      当步长为负,要求开始下标对应的字符的位置必须在结束下标对应的字符的位置后面。否则结果为空

    • 不管怎么取,结束下标一定取不到!

    str1 = 'hello python!'
    print(str1[0:-1:2])     #hlopto
    print(str1[0:10:-2])    #null,结果为空
    print(str1[-1:0:-2])    #!otpol
    print(str1[-1:-10:2])   #null
    print(str1[-1:-100:-2]) #!otpolh,结束下标越界
    print(str1[100:-100:-2])#!otpolh,下标越界
    
    #练习:获取一个字符串中所有下标是奇数的字符(顺序)
    print(str1[1:100:2])   #el yhn
    
    

    方法二:(省略步长)

    字符串[开始下标:结束下标] -- 步长是1,从开始下标到结束下标为止,一个一个的取

    print('when i was young '[2:6]) #en i

    方法三:(省略开始下标和结束下标)

    • a.省略开始下标
      字符串[:结束下标:步长]
      -当步长是正数,从字符串的第一个字符开始取到结束下标为止;
      -当步长是负数,从字符串的最后一个字符开始取到结束下标为止;
    • b.省略结束下标
      字符串[开始下标::步长]
      -当步长是正数,从开始下标开始取到字符串最后一个字符为止;
      -当步长是负数,从开始下标开始取到字符串第一个字符为止;
    print('when i was young '[:6])   #when i
    print('when i was young!'[:6:-1]) #!gnuoy sawprint('when i was young!'[:6:-1]print('when i was young!'[:6:-1])
    print('when i was young!'[0:])  #when i was young!
    print('when i was young!'[:]) #when i was young!
    print('when i was young!'[::-1])   #!gnuoy saw i nehw  字符串倒序
    


    2.字符串相关运算

    1.字符串支持的运算符: +, *, >, <, ==, <=, >=, !=

    • a.Python中的字符串支持数学运算符中的 + *,以及所有的比较运算符

    • 加 + : 字符串1+字符串2 --将字符串1和字符串2拼接在一起产生一个新的字符串
      注意:字符串和数字不能混合相加!

    • 乘 * : 字符串 * N --N是正整数;字符串重复N次产生一个新的字符串

    new_str = 'abc' + '123'
    print(new_str)  #abc123
    
    name = '张三'
    message = '吃饭了吗'
    print(name + message + '?')  #张三吃饭了吗?
    
    str1 = 'abc'
    print(str1 * 3)  #abcabcabc
    
    
    • c.比较是否相等
      == , != 可以判断两个字符串是否相等或者不相等

    • d.字符串比较大小:从第一个字符开始依次往后找,找到第一个不相等的字符对,判断它们编码值的大小,
      谁的编码值大,对应的字符串就大,不会再往后比较了

    应用
    1.判断是否是小写字母:
    ‘a’<=char<='z'(只有Python支持这种写法。Pythonnb.) --> char>= ‘a’< and char<='z'

    print('abc'=='abc')  #True
    print('abc'=='bac')  #False
    
    print('dcb' > 'abcde')  #True
    

    2.判断一个字符串中第三个字符是否是字母

    str2 = 'sa1hif329'
    char = str2[2] #取出第三个字符
    print('是否是字母','a'<=char<='z' or 'A'<=char<='Z')  #是否是字母 False
    print('是否是中文','\n4e00' <= char <= '\n9fa5')      #是否是中文 False
    

    2. in 和not in 操作

    字符串1 in 字符串2 -> 判断字符串1是否是字符串2的子串
    字符串1 not in 字符串2 -> 判断字符串1是否不是字符串2的子串

    print('abc' in 'helloabc')  #True
    print('abc' in 'ahellobc')  #False ,顺序必须相同
    print('abc' not in 'helloabc')  #False
    print('abc'not in 'ahellobc')  #True
    

    3. len函数、

    len(序列) - 获取序列长度,获取序列中元素的个数
    len(字符串) - 获取字符串的长度,就是字符的个数

    • 注意:
      一个可以转义的转义字符长度是1;
      一个编码字符长度是1;
      一个空格字符长度是1;
      手动在键盘上按一个tab一般是4个空格,长度是4;一个\t表示的tab长度是1

    print(len('ashfov')) #6

    str1=input('请输入:')    #输入abcd
    last_char =str1[len(str1)-1]   #最后一个字符
    print(last_char)           #d
    
    str1='  abc'
    str2='\tabc'
    print(len(str1),len(str2)) #5 4  本机设置的一个tab是2个空格
    


    3.formstring 格式字符串

    1.什么是格式字符串

    • 在字符串中通过格式占位符来代替字符串中变化的部分,然后在后面通过数据或者变量确定变化

    2. 语法:

    包含占位符的字符串%(值1,值2,值3,···)

    3 说明:

    • 占位符 -
      %s (字符串)
      %d (整数)
      %f (小数) (%.nf 保留小数点后n位小数)
      %c (字符)(可以将数字转换成字符)

    • % -- 固定写法

    • () -- 固定写法,字符串中只有一个占位符的时候,这个()可以省略

    • 括号中的值 - 值和占位符要一一对应(个数、类型、位置都要对应)

    name = input('姓名:')
    age = 18
    sex = '男'
    message = '我叫%s,今年%d,性别%s,月薪%.1f万'%(name,age,sex,1.5)
    print(message)
    
    • 练习:输入一个字符串,用一个变量保存输入的字符串的相关信息,XXX的长度是XX,最后一个字符是X
    str1 = input('请输入一个字符串:')
    length = len(str1)
    char = str1[len(str1)-1]
    message ='%s的长度是%d,最后一个字符是%s'%(str1,length,char)
    print(message)
    


    4.typeconversion 类型转换

    1、基本语言

    • 语法:
      类型名(数据) - 将指定数据转换成指定类型
    • 说明:
      类型名 -- 任何Python支持的,或者自定的类型都可以
      数据 -- 需要转换的对象(类型不同要求可能不同)

    2.转换实例

    int(数据) -> 将其他数据转换成整型
    float(数据) -> 将其他数据转换成浮点型
    bool(数据) -> 将其他数据转换成bool型
    str(数据) -> 将其他数据转换成字符串

     age=input('年龄:')
     print(type(age),age)
     print('是否能进入网吧',int(age) >= 18)
    

    1.转换成整型

    a = int(12.8) #12  浮点数可以转换成整数,直接保留整数部分
    b = int(True)   #bool可以转换成整数,True->1 ,Fasle->0
    c = int('12')    #只有去掉字符串的引号后本身就是一个整数的字符串才能转化成整型
    print(a,b,c)
    

    2.转换成浮点型

    a = float(100)   #所有的整数都可以转换成浮点数,在后面加.0
    b = float(True) #所有的bool都可以转换成浮点数,True->1.0  False->0.0
    c = float('12.9') #去掉字符串的引号后本身就是一个数字的字符能转化成浮点型
    print(a,b,c)
    

    3.转换成布尔类型

    • Python中所有的数据都可以转换成布尔
    • 所有为空、为0的值都会转换成False,其他全是True
    a = bool(0)
    b = bool(0.0)
    c = bool('')
    d = bool ([])
    e = bool({})
    f = bool(None)
    print(a,b,c,d,e,f)  #False False False False False False
    

    4.转换成字符串类型

    • Python中所有的数据都可以转换成字符串,而且转换的时候就是单纯的在最外面加引号

    • 练习:输入3个数字,求着3个数字的和

    num1 = input('输入3个数字')
    num2 = input()
    num3 = input()
    print('三个数字的和是:',float(num1)+float(num2)+float(num3))
    

    未完待续。。

    相关文章

      网友评论

          本文标题:12-27 day4获取字符,字符串相关运算,格式字符串,类型

          本文链接:https://www.haomeiwen.com/subject/pgrdlqtx.html