06.python常用数据类型—字符串

字符串(str)

字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。

1 字符串的表示

v1 = "包治百病"
v2 = '包治百病'
v3 = "包'治百病"
v4 = '包"治百病'
v5 = """吵架都是我的错,因为大家打不过。"""
# 三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。

2 常见方法

Python中给属于字符串的所有的值都提供了一些功能(方法),从而可以快速对字符串进行一些方便的操作。

注意:这是字符串类型独有的功能,其他类型中没有此功能。

  1. 判断字符串是否以 XX 开头?得到一个布尔值

    v1 = "叨逼叨的一天,烦死了" 
    result = v1.startswith("叨逼") 
    print(result) # 值为True
    
    # 案例 
    v1 = input("请输入住址:") 
    if v1.startswith("北京市"):     
    	print("北京人口") 
    else:     
     	print("非北京人口")
    
  2. 判断字符串是否以 XX 结尾?得到一个布尔值

    v1 = "叨逼叨的一天,烦死了" 
    result = v1.endswith("烦死") 
    print(result) # 值为False
    
    # 案例 
    address = input("请输入地址:") 
    if address.endswith('村'):     
     	print("农业户口") 
    else:     
    	print("非农户口")
    
  3. 判断字符串是否为十进制数?得到一个布尔值

    v1 = "1238871" 
    result = v1.isdecimal() 
    print(result) # True
    
    # 案例 
    v1 = input("请输入值:") 
    v2 = input("请输入值:") 
    if v1.isdecimal() and v2.isdecimal():     
        data = int(v1) + int(v2)     
        print(data)
    else:     
        print("请正确输入数字")
    
  4. 去除字符串两边的 空格、换行符、制表符,得到一个新字符串

    msg = " H e ll o啊,树哥 " 
    data = msg.strip() 
    print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥"
    
    # 案例 
    code = input("请输入4位验证码:") 
    data = code.strip() 
    if data == "FB87":     
    	print('验证码正确') 
    else:     
    	print("验证码错误")
    
  5. 字符串变大写,得到一个新字符串

    msg = "my name is oliver queen" 
    data = msg.upper() 
    print(data) # 输出为:MY NAME IS OLIVER QUEEN
    
    # 案例 
    code = input("请输入4位验证码:") 
    data = code.strip() 
    value = data.upper() # value = code.strip().upper() 
    if value == "FB87":     
    	print('验证码正确') 
    else:    
    	print("验证码错误")
    
  6. 字符串变小写,得到一个新字符串

    msg = "My Name Is Oliver Queen" 
    data = msg.upper() 
    print(data) # 输出为:my name is oliver queen
    
    # 案例 code = input("请输入4位验证码:") 
    value = code.strip().lower()
    if value == "fb87":     
    	print('验证码正确') 
    else:     
    	print("验证码错误")
    
  7. 字符串内容替换,得到一个新的字符串

    data = "你是个好人,但是好人不合适我" 
    value = data.replace("好人","贱人") 
    print(value) # "你是个贱人,但是贱人不合适我"
    
    # 案例 
    video_file_name = "高清无码爱情动作片.mp4" 
    new_file_name = video_file_name.replace("mp4","avi") 
    final_file_name = new_file_name.replace("无码","步兵") 
    print(final_file_name)
    
    # 案例 
    content = input("请输入评论信息") 
    content = content.replace("草","**") 
    content = content.replace("泥马","***") 
    print(content)
    
  8. 字符串切割,得到一个列表

    data = "xx|xxxx|xxxxx@qq.com" 
    result = data.split('|') 
    print(result) 
    # 输出 ["xx","xxxx","xxxxx@qq.com"] 根据特定字符切开之后保存在列表中,方便以后的操作
    
    # 案例:判断用户名密码是否正确 
    info = "武沛齐|root"   # 备注:字符串中存储了用户名和密码 
    user_list = info.split('|')    # 得到一个包含了2个元素的列表 [ "武沛齐" , "root" ] 
    user = input("请输入用户名:") 
    pwd = input("请输入密码:") i
    f user == user_list[0] and pwd == user_list[1]:     
    	print("登录成功") 
    else:     
    	print("用户名或密码错误")
    
  9. 字符串拼接,得到一个新的字符串

    data_list = ["你","我","哈哈"] 
    result = "干掉".join(data_list) 
    print(result) 
    # 输出:你干掉我干掉哈哈(通过`干掉`把列表中的值拼接起来)
    
  10. 格式化字符串,得到新的字符串

    name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
    data = name.format("小明","学生","老师")
    print(data) # 小明的喜欢干很多行业,例如有:学生、老师 等
    
    name = "{}的喜欢干很多行业,例如有:{}、{} 等"
    data = name.format("小明","学生","老师")
    print(data) # 小明的喜欢干很多行业,例如有:学生、老师 等
    
    name = "{name}的喜欢干很多行业,例如有:{h1}、{h2} 等"
    data = name.format(name="小明",h1="学生",h2="老师")
    print(data) # 小明的喜欢干很多行业,例如有:学生、老师 等
    

练习题

1. 写代码实现判断用户输入的值否以 "al"开头,如果是则输出 "是的" 否则 输出 "不是的"
2. 写代码实现判断用户输入的值否以"Nb"结尾,如果是则输出 "是的" 否则 输出 "不是的"
3. 将 name 变量对应的值中的 所有的"l"替换为 "p",并输出结果
4. 写代码实现对用户输入的值判断,是否为十进制小数(isdecimal),如果是则转换为整型并输入,否则直接输出"请输入数字"
5. 对用户输入的数据使用"+"切割,判断输入的值是否都是数字?
    提示:用户输入的格式必须是以+连接,如 5+9 、alex+999
6. 写代码实现一个整数加法计算器(两个数相加)
    需求:提示用户输入:5+9或5+9或5+9,计算出两个值的和(提示:先分割再转换为整型,再相加)
7. 写代码实现一个整数加法计算器(两个数相加)
    需求:提示用户输入:5 +9或5+ 9或5 + 9,计算出两个值的和(提示:先分割再去除空白、再转换为整型,再相加)
8. 补充代码实现用户认证。
    需求:提示用户输入手机号、验证码,全都验证通过之后才算登录成功(验证码大小写不敏感)
    import random
    code = random.randrange(1000,9999) # 生成动态验证码
    msg = "欢迎登录PythonAV系统,您的验证码为:{},手机号为:{}".format(code,"15131266666")
    print(msg)
    # 请补充代码
9. 补充代码实现数据拼接
    data_list = []
    while True:
        hobby = input("请输入你的爱好(Q/q退出):")
        if hobby.upper() == 'Q':
            break
        data_list.append(hobby) # 把输入的值添加到 data_list 中,如:data_list = ["小姨子","哥们的女朋友"]
    # 将所有的爱好通过符号 "、"拼接起来并输出

3 转换为字符串

以后的python开发中经常的用是:数字 转 为字符串类型。

number = 888
data = str(number)
print(data)

4 其他

字符串除了有上述那些字符串独有的功能以外,还有一个其他“公共的功能”,某些其他的类型也具有的功能。

  1. 获取字符串长度

    name = "武沛齐" 
    name_length = len(name) 
    print(name_length) # 输出:3
    
    nickname = "wupeiqi" 
    length = len(nickname) 
    print(length) # 输出:7
    
  2. 索引,获取字符串中某个字符的值。

    name = "来做点py交易"
    print( name[0] ) # 输出 来
    print( name[1] ) # 输出 做
    print( name[6] ) # 输出 易   (默认索引是从0向后逐步向后增加,索引超出最大范围会报错)
    print( name[-1] ) # 输出 易  (如果索引为负值,则表示从后向前,-1表示最后一个)
    print( name[-3] ) # 输出 y
    print( name[len(name)-1]) # 输出 易
    
    # 案例:循环字符串的所有字符
    content = "长江以北晓峰最美山海关以外晓峰最帅"
    index = 0
    while index < len(content):
    	char = content[index]
    	print(char)
    	index += 1
    
    # 案例:循环字符串的所有字符
    content = "你瞅啥"
    index = -1
    while index >= - len(content):
        char = content[index]
        print(char)
        index -= 1
    

    练习题:获取用户输入的字符判断他的数字的字符串中有一个数字(只考虑个位数)?例如 你有点2,还特么有点666这段字符串中有4个数字。

  3. 切片,获取字符串中n连续的字符的值。

    name = "你是风儿我是沙。不,我不是沙而是你爸"
    print( name[0:2] ) # 输出:你是    (根据索引 `前`按开区间 `后`按闭区间,即:前取后不取)
    print( name[2:5] ) # 输出:风儿我
    print( name[2:])   # 输出:风儿我是沙。不,我不是沙而是你爸(后面不写表示到最后)
    print( name[:6])   # 输出:你是风儿我是(前面不是表示从头开始)
    print( name[2:-1]) # 输出:风儿我是沙。不,我不是沙而是你
    print( name[2:-2]) # 输出:风儿我是沙。不,我不是沙而是
    print( name[0:len(name)]) # 输出:你是风儿我是沙。不,我不是沙而是你爸
    
  4. 步长,相当于我们生活中的跳步选择数据。

    name = "生活不是电影,生活比电影苦"
    print( name[ 0:5:2 ] )   # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】
    print( name[ :8:2 ] )    # 输出:生不电,活  【区间范围的前面不写则表示起始范围为0开始】
    print( name[ 2::3 ] )    # 输出:不影活影  【区间范围的后面不写则表示结束范围为最后】
    print( name[ ::2 ] )     # 输出:生不电,活电苦 【区间范围不写表示整个字符串】
    print( name[ 8:1:-1 ] )  # 输出:活生,影电是不 【倒序】
    print( name[ ::-1 ] )    # 输出:苦影电比活生,影电是不活生  【倒序】
    
  5. for循环

    想要循环显示字符串的每个字符,通过之前的 while循环 + 索引 可以实现,现在通过for循环则可以更方便的实现。

    content = "三分天注定,七分靠滤镜"
    for item in content:   
    	print(item)
    
    # 案例:判断用输入的值中有多少个字符 `a`(不区分大小写,即:A、a)
    total_count = 0
    content = input("请输入内容:")
    for char in content:   
    	if char.upper() == 'A':       
    		total_count += 1
    message = "您输入的内容中A/a共有{}个".format(total_count)
    
    # 案例:break和continue也可以应用在for循环中
    data = "像我这样优秀的人,本该灿烂过一生"
    for item in data:   
        print(item)   
        if item == "人":       
            break
    content = input("请输入内容:")
    for char in content:   
    	if char.upper() == 'A':       
    		total_count += 1
    message = "您输入的内容中A/a共有{}个".format(total_count)
    
     # 案例:break和continue也可以应用在for循环中
     data = "像我这样优秀的人,本该灿烂过一生"
     for item in data:   
         print(item)   
         if item == "人":       
             break
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Python 中,我们可以使用以下函数将字符串转换为其他数据类型: 1. int():将字符串转换为整数类型。 2. float():将字符串转换为浮点数类型。 3. bool():将字符串转换为布尔类型。 4. list():将字符串转换为列表类型。 5. tuple():将字符串转换为元组类型。 6. set():将字符串转换为集合类型。 7. dict():将字符串转换为字典类型。 下面是一些示例代码: ```python str_num = "10" int_num = int(str_num) print(type(int_num)) # 输出:<class 'int'> str_float = "3.14159" float_num = float(str_float) print(type(float_num)) # 输出:<class 'float'> str_bool = "True" bool_val = bool(str_bool) print(type(bool_val)) # 输出:<class 'bool'> str_list = "[1, 2, 3]" list_val = list(str_list) print(type(list_val)) # 输出:<class 'list'> str_tuple = "(4, 5, 6)" tuple_val = tuple(str_tuple) print(type(tuple_val)) # 输出:<class 'tuple'> str_set = "{7, 8, 9}" set_val = set(str_set) print(type(set_val)) # 输出:<class 'set'> str_dict = "{'a': 1, 'b': 2}" dict_val = dict(str_dict) print(type(dict_val)) # 输出:<class 'dict'> ``` ### 回答2: Python字符串转换为数据类型可以使用内置的各种方法和函数。下面是几种常用的转换方式: 1. 转为整数:可以使用`int()`函数将字符串转换为整数类型。例如,`num_str = "123",num = int(num_str)`将字符串"123"转换为整数型123。 2. 转为浮点数:可以使用`float()`函数将字符串转换为浮点数类型。例如,`float_str = "3.1415",float_num = float(float_str)`将字符串"3.1415"转换为浮点数型3.1415。 3. 转为布尔值:可以使用`bool()`函数将字符串转换为布尔值类型。例如,`bool_str = "True",bool_value = bool(bool_str)`将字符串"True"转换为布尔值类型True。 4. 转为列表:可以使用`eval()`函数将字符串解析为列表类型。例如,`list_str = "[1, 2, 3, 4]",list_value = eval(list_str)`将字符串"[1, 2, 3, 4]"转换为列表类型[1, 2, 3, 4]。 5. 转为字典:可以使用`eval()`函数将字符串解析为字典类型。例如,`dict_str = "{'name': 'Alice', 'age': 20}",dict_value = eval(dict_str)`将字符串"{'name': 'Alice', 'age': 20}"转换为字典类型{'name': 'Alice', 'age': 20}。 需要注意的是,使用`eval()`函数时要确保字符串是安全的、可被解析的,否则可能引发安全问题。 ### 回答3: Python中可以通过内置的类型转换函数将字符串转换为不同的数据类型常用的类型转换函数有以下几种: 1. int()函数:将字符串转换为整数类型。如果字符串中的字符不是数字,则会引发ValueError异常。 2. float()函数:将字符串转换为浮点数类型。如果字符串中的字符不是数字,则会引发ValueError异常。 3. bool()函数:将字符串转换为布尔类型。字符串仅为"True"(不区分大小写)时,转换为True;其他情况转换为False。 4. str()函数:将其他类型的数据转换为字符串类型。 示例代码如下: ```python str_var = "123" int_var = int(str_var) print(int_var) # 输出:123 print(type(int_var)) # 输出:<class 'int'> str_var = "3.14" float_var = float(str_var) print(float_var) # 输出:3.14 print(type(float_var)) # 输出:<class 'float'> str_var = "True" bool_var = bool(str_var) print(bool_var) # 输出:True print(type(bool_var)) # 输出:<class 'bool'> int_var = 123 str_var = str(int_var) print(str_var) # 输出:"123" print(type(str_var)) # 输出:<class 'str'> ``` 需要注意的是,转换时要确保字符串的内容可以正确转换为目标数据类型,否则会引发异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值