zoukankan      html  css  js  c++  java
  • 2. 字符串类型

    2. 字符串类型

    2.1 作用:

    • 记录描述性质的状态,例如名字,一段话,性别

    2.2 定义

    • 用引号(' '," ",''' ''',""" """,)包含的一串字符
    name = "egon"     # name = str("egon")
    print(name)  
    
    x = "18"   # 由数字组成的字符串,是字符串类型,不是int类型
    print(type(x))
    
    'name' = 'egon' # 语法错误,等号左边是变量名,变量名的命名不能有引号
    
    name  # 代表访问变量名字
    'name'  # 代表的是值
    

    2.3 类型转换

    • str可以把任意其他类型都转成字符串
    res=str({'a.txt':1})
    print(res,type(res))
    

    2.4 内置方法

    优先掌握:

    1. 按索引取值(正向取+反向取)

    • 只能取,不能改
    msg = 'hello world'
    # 正向取
    print(msg[0])
    print(msg[5])
    # 反向取
    print(msg[-1])   # 结果为d
    
    # 只能取,不能改
    msg[0] = 'H'   # 报错
    

    2. 切片:索引的拓展应用

    • :索引的拓展应用,从一个大字符串中拷贝出一个子字符串
    msg = 'hello world'
    # 顾头不顾尾
    res = msg[0:5] # x,顾头不顾尾,只能取到4(01234)
    print(res)   # 结果为hello
    print(msg)
    
    # 步长
    res = msg[0:5:2] # 0 2 4
    print(res) # 结果为 hlo
    
    # 反向步长(了解)
    res = msg[5:0:-1]
    print(res) #" olle"
    
    msg = 'hello world'
    res = msg[:] # res=msg[0:11],默认起始位置到最后位置
    print(res)
    
    res = msg[::-1] # 把字符串倒过来
    print(res)    # 输出结果为 dlrow olleh
    

    3. 长度 len

    msg = 'hello world'
    print(len(msg))         # 输出 11
    

    4. 成员运算in和not in

    • 判断一个子字符串是否存在于一个大字符串中
    print("alex"  in  "alex is sb")
    print("alex"  not in  "alex is sb")
    print( not "alex" in "alexissb")      # 不推荐使用
    

    5. 移除字符左右两侧的符号 strip

    # 1. 默认去掉的空格
    msg = '      egon      '
    res = msg.strip()
    print(msg) 	# 不会改变原值
    print(res) 	# 是产生了新值
    
    # 2. 去掉左右两侧的符号
    msg = '****egon****'
    print(msg.strip('*'))     # 去掉左右两侧的*
    
    # 3. 了解:strip只取两边,不去中间
    msg = '****e*****gon****'
    print(msg.strip('*'))		# 输出结果为e*****gon
    
    msg = '**/*=-**egon**-=()**'
    print(msg.strip('*/-=()')) 	  # 输出egon
    
    # 4. 应用
    inp_user = input('your name>>: ').strip() 		# inp_user = " egon"
    inp_pwd = input('your password>>: ').strip()
    if inp_user == 'egon' and inp_pwd == '123':
         print('登录成功')
    else:
         print('账号密码错误')
    
    

    6. 切分split:字符串——>列表

    • 把一个字符串按照某种分隔符进行切分,得到一个列表
    # 默认分隔符是空格
    info = 'egon 18 male'
    res = info.split()
    print(res)    # 输出结果为 ["egon","18","male"]
    
    # 指定分隔符
    info = 'egon:18:male'
    res = info.split(':')
    print(res)			# 输出结果为 ["egon","18","male"]
    
    # 指定分隔次数(了解)
    info = 'egon:18:male'
    res = info.split(':',1)
    print(res)
    

    7. 循环

    info = 'egon:18:male'
    for x in info:
         print(x)
    

    需要掌握:

    1. strip ,lstrip ,rstrip 去符号

    msg = '***egon****'
    print(msg.strip('*'))    # 去左右两边的符号
    print(msg.lstrip('*'))   # 去左边的符号
    print(msg.rstrip('*'))   # 去右边的符号
    

    2. lower,upper 全为大/ 小写

    msg = 'AbbbCCCC'
    print(msg.lower())     # 全为小写 abbbcccc
    print(msg.upper())    # 全为大写 ABBBCCCC
    

    3. startswith,endswith 判断开始/结尾的字符

    print("alex is sb".startswith("alex"))    # 判断是不是以alex开始的
    print("alex is sb".endswith('sb'))       # 判断是不是以sb结尾的
    

    4. format

    5. split,rsplit: 将字符串切成列表

    info = "egon:18:male"
    print(info.split(':',1)) 	# ["egon","18:male"]
    print(info.rsplit(':',1)) 	# ["egon:18","male"],从右往左切
    

    6. join,把列表拼接成字符串

    l = ['egon', '18', 'male']
    res = l[0] + ":" + l[1] + ":" + l[2]
    res = ":".join(l) 	# 按照某个分隔符号,把元素全为字符串的列表拼接成一个大字符串
    print(res)		# egon:18:male
    
    l = [1,"2",'aaa.txt']
    ":".join(l)
    

    7. replace 替换字符串

    msg = "you can you up no can no bb"
    print(msg.replace("you", "YOU", ))      # 替换的字符串,替换成什么样,默认替换所有
    print(msg.replace("you", "YOU", 1))    # 替换的字符串,替换成什么样,替换几次
    

    8. isdigit 判断字符串是否由纯数字组成

    print('123'.isdigit())
    print('12.3'.isdigit())
    
    age = input('请输入你的年龄:').strip()
    if age.isdigit():
        age = int(age)    # int("abbab")
        if age > 18:
            print('猜大了')
        elif age < 18:
            print('猜小了')
        else:
            print('才最了')
    else:
        print('必须输入数字,傻子')
    

    了解

    其他使用:

    字符串的嵌套,注意:内层用单引号,外层应该用双引号

    print("my name is 'egon' ")
    print("my name is "egon " ") #  转意符号
    
    • 字符串之间可以相加,但仅限于字符串与字符串之间进行

    • 代表字符串的拼接,了解即可,不推荐使用,因为str之间的相加效率极低

    print(' my name is ' + ' egon ')
    print(' = ' * 20)
    
  • 相关阅读:
    POJ 1426 Find The Multiple(数论——中国同余定理)
    POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
    POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
    POJ 3278 Catch That Cow(模板——BFS)
    HDU 1071 The area
    HDU 1213 How Many Tables(模板——并查集)
    POJ 1611 The Suspects
    light oj 1214 Large Division
    POJ 1258 Agri-Net(Prim算法求解MST)
    POJ 2387 Til the Cows Come Home(模板——Dijkstra算法)
  • 原文地址:https://www.cnblogs.com/j-chao/p/13405118.html
Copyright © 2011-2022 走看看