Day4

作者: LitoYu | 来源:发表于2018-12-28 00:14 被阅读0次

    字符串知识点补充:

    • 字符串又叫字符集。
    • 空串:"",''。
    • 空格字符串:" ",' '。
    • \t: tab键的长度是4,但\t的长度为1。
    • 编码字符:十六进制数:1-9和a-f。

    1. 获取字符

    获取单个字符:

    字符串一旦确定,字符串中的每一个字符都会对应唯一的下标(索引)用来表示字符在字符串中的位置。
    下标是从0开始依次增加,0对应的是第一个字符,也可以是从-1开始依次减少,-1代表最后一个字符。
    例如:
    hello -> h->0 e->1 l->2 l->3 o->4
    hello -> h->-5 e->-4 l->-3 l->-2 o->-1
    (0,-5),(1,-4),(2,-3)(3,-2)(4,-1)
    例如: "\tpytho\u4e00n" p->(1,-7)

    1. 语法:
      字符串[下标] -获取字符串中指定下标对应的字符。
    2. 说明:
      字符串 -只要是结果是字符串的表达式都可以,例如:字符串字面量,字符串变量。
      [ ] -固定写法。
      下标 -需要获取字符对饮的下标。
      注意:这里的下标不能越界:IndexError: string index out of range(下标越界报错)
    result = 'how are you!'[0]
    print(result)
    print('how are you!'[4])
    print('how are you!'[-12])
    str1 = 'china no.1'
    print(str1[4])
    print(str1[2],str1[-4])
    
    输出结果

    获取多个字符(字符串切片):

    语法:
    方法一:
    字符串[开始下标,结束下标:步长]
    -从开始下标开始,获取到结束下标前为止,每次下标值加上步长去获取下一个。

    • 字符串 -只要是结果是字符串的表达式都可以,例如:字符串字面量,字符串变量
    • [] -固定写法
    • 开始下标和结束下标:下标值(这里的下标可以越界:但一般不要越界)
    • 步长:要求必须是整数,正数和负数都行;如果步长是正数,下标是从开始从前往后。如果步长是负数,下标是从开始从后往前。

    开始下标和结束下标:
    如果步长为正,要求:开始开始下标对应的位置必须结束下标对应的字符的位置的前面,否则结果是空串。
    如果步长为负,要求:开始开始下标对应的位置必须结束下标对应的字符的位置的后面,否则结果还是空串。

    str2 = 'hello python!'
    print(str2[0:4:1])
    print(str2[0:7:3])
    print(str2[4:0:-1])
    print(str2[-6:-2:2])
    print(str2[0:-1:2])
    print(str2[-1:0:-2])
    print(str2[-1:-100:-1])  # 结束下标可越界
    print(str2[100:-100:-1])
    # 获取一个字符串中所有下标所有的奇数的字符,顺序获取:
    str3 = 'w oshi yitia oxianyu'
    print(str3[1:100:2])
    str4 = "{'姓名:', '小明'}"
    print(str4[1:-1:1])  #去掉花括号
    
    运行结果

    方法二(省略步长):
    字符串[开始下标:结束下标] ,步长为1,从开始下标到结束下标前为止,一个一个的取。
    print('i am'[0:2])
    方法三(省略开始下标和结束下标):

    1. 省略开始下标:
      字符串[:结束下标:步长]
      当步长是正数时,从字符串的第一个字符开始取到结束下标前为止。
      当步长是负数时,从字符串的最后一个字符开始取到结束下标前为止。
    2. 省略结束下标:
      字符串[开始下标::步长]
      当步长是正数时,从开始下标开始取到字符串最后一个字符为止。
      当步长是负数时,从开始下标开始取到字符串第一个字符为止。
    str5 = 'when i was young'
    print(str5[:6],str5[:6:-1])
    print(str5[2:],str5[2::-1])
    print(str5[:])   # 字符串全取
    print(str5[::-1])  # 让字符串倒序
    
    运行结果

    运算符:

    1. 字符串支持的运算符:
      • 数学相关的+和*
      • 比较运算符:>,<,==,>=,<=

    也就是说字符串支持数学运算符+和*,以及所有比较运算符。

    1. 数学运算符的应用:
      +: 字符串1 + 字符串2
      作用:将两个字符串拼接在一起,组成一个新的字符串。

    注意:字符串两边必须都是字符串,字符串和数字不能混合相加,会报错。
    print('qwe' + 123 ) //TypeError: must be str, not int

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

    new_str = 'abc' + '123'
    print(new_str)
    name = '张三'
    message = '吃饭了吗?'
    print(name + message + '.....')
    new_str = 'abc' * 3
    print(new_str)
    print(('abc' + '123') * 2)
    print('abc' + '123' * 2)
    
    运行结果
    1. 比较是否相等
      ==,!= 可以判定两个字符串是否相等或者不相等。
    print('abc' == 'abc')
    print('abc' == 'adc')
    print('abc' != 'abc')
    
    运行结果
    1. 字符串比较大小:
      从第一个字符开始依次往后找,找到第一个不相等的字符开始对比,判断它们的编码值的大小。
      谁的编码值大,对应的字符串就大,就不会再往后比较了!
      应用:
      判断是否是小写字母:'a' <= char <= 'z'
      判断是否为中文:'\u4e00' <= char <= '\u9fa5'
    print('adc' > 'abcdef')
    print('adc' > 'adcer')
    print('dab' > 'abcde')
    # 判断一个字符串中第三个字符是否是字母:
    str1 = '33323.ssy23'
    char = str1[2]
    print('是否是字母', 'a' <= char <= 'z' or 'A' <= char <= 'Z')
    # 判断是否是中文
    str2 = '为啥?'
    char = str2[1]
    print('是否是中文', '\u4e00' <= char <= '\u9fa5')
    
    运行结果

    in和not in操作

    字符串1 in 字符串2 ->判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)。
    包含必须完整,字符串1是字符串2的一部分。
    字符串1 not in 字符串2 ->判断字符串2中是否不包含字符串1(判断字符串1是否不是字符串2的子串)。

    print('abc' in 'hello abc')  # True
    print('abc' in 'ahello bc')   # False
    print('abc' not in 'ahello bc')  # True
    print('abc' not in 'hello abc')   # False
    
    print('A' in 'hello Abc')
    
    运行结果

    len函数:

    • len(序列) 获取序列长度,获取序列中元素的个数.
    • len(字符串) 获取字符串的长度,获取字符串中字符的个数
    • 一个空格字符的长度是1,
      手动在键盘上按一个TAB,一般是四个空格
    print(len('abc'))  # 返回结果是个整数。
    str3 = input('请输入字符串')
    n = len(str3)
    print(str3[n - 1])
    # 获取输入字符中的最后一个字符
    last_char = str3[len(str3) - 1]
    print(last_char)
    
    str4 ='    set'
    str5 = '\tset'
    print(len(str4))
    print(len(str5))
    print(len(str4),len(str5))
    # 手动输入的Tab和\t对应的空格数可能不一样,但\t永远是一个字符。
    
    运行结果

    格式字符串:

    什么是格式字符串?
    在字符串中通过格式占位符来代替字符串中变化额部分,然后在后面通过数据或者变量确定变化。
    语法:
    包含占位符的字符串 % (值1,值2,值3...)
    说明:一种固定的格式

    • %d 整数
    • %s 字符串
    • %f 小数 %.Nf 保留N位小数
    • $c 字符
      % - 固定写法
      ()也是固定写法’字符串中只有一个占位符时()可省略。
      ()里面的值:()里面有什么值,以及值的类型,与前面的占位符个数,类型和位置一一对应。
    name = input('姓名:')
    message = '你好' + name
    print(message)
    # 加法解决。。。
    name = input('姓名:')
    age = 12
    sex = '男'
    
    # message = "我叫XXX,今年XX岁,性别:X"
    message = '我叫%s,今年% d,性别是%c,月薪%.2f万'%(name, age, sex, 1.89)
    print(message)
    
    # 练习:
    # 输入一个字符串,用一个变量保存字符串的相关信息,XXX的长度是XX,最后一个字符是X
    
    str_input = input("请输入一个字符串:")
    str1 = len(str_input)
    str2 = str_input[str1 - 1]
    message1 = '%s,的长度是%d,最后一个字符是%c' % (str_input, str1, str2)
    print(message1)
    
    运行结果

    类型转换:

    格式:类型名(数据)
    作用:将指定数据转换为指定类型。
    说明:
    类型名:任何python支持的,或者自定义的,都可以。
    数据:需要转换的对象(类型不同要求可能不一样)。

    转换实例:

    int(数据)->将其他的数据转换成整型。

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

    1. 转换成整型:

    a = int(12.34)
    print(a)

    浮点数可以转换成整型,直接保留整数部分

    运行结果

    布尔值转换成整型

    b = int(True)
    c = int(False)
    print(b,c)
    # 所有布尔可以转换为整型,True = 1, Flase = 0。
    e = int('23')
    # e = int('12.0')  //不能转换
    print(e)
    
    运行结果

    注:只有去掉引号之后本身就是整数的字符串才能转换为整型。

    2. 转换为浮点数:

    所有的整数都能转换为浮点数,在后面加.0。
    布尔都可以转换为浮点数,True = 1.0, Flase = 0.0
    去掉引号后本身是一个数字的字符串都能转换为浮点型

    f = float(100)
    g = float(True)
    h = float('12')
    

    3. 转换为布尔类型:

    python中所有的数据都可以转换为布尔值。
    所有为空为零的值都会转换为False,其他都是True。

    i = bool(100)
    print(i)
    j = bool(-123)
    print(j)
    k = bool(0)
    print(k)
    l = bool('')
    print(l)
    m = bool([])
    print(m)
    n = bool({})
    print(n)
    o = bool(None)
    print(o)
    print(i,j,k,l,m,n,o)
    
    运行结果

    4. 转换从字符串类型:

    python中所有的数据类型都可以转换为字符串,而且转换的时候只是单纯的在外面加''或者""。

    p = str(100)
    print(p)
    
    # 输入三个数字,求三个数字的和。
    num4 = input("请s输入第一个数字:")
    num5 = input("请s输入第二个数字:")
    num6 = input("请s输入第三个数字:")
    print( float(num4)+ float(num5) + float(num6))
    
    # inputstr = input("请输入三个数以逗号隔开:")
    # print(inputstr)
    
    运行结果

    相关文章

      网友评论

          本文标题:Day4

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