str_string - CSDN
精华内容
参与话题
  • Python str方法

    万次阅读 多人点赞 2018-04-11 21:14:16
    Python str常用方法 一、字母处理 1、全部大写:str.upper() str1 = 'nostalgia' str2 = str1.upper() print(str2) NOSTALGIA 2、全部小写:str.lower() str1 = 'NOSTALGIA' str2 = str1.lower() ...

    Python str常用方法

    一、字母处理

    1、全部大写:str.upper()

    str1 = 'nostalgia'
    str2 = str1.upper()
    print(str2)
    NOSTALGIA
    

    2、全部小写:str.lower()

    str1 = 'NOSTALGIA'
    str2 = str1.lower()
    print(str2)
    nostalgia
    

    3、大小写互换:str.swapcase

    str1 = 'No Smouking'
    str2 = str1.swapcase()
    print(str2)
    nO sMOUKING
    

    4、首字母大写,其余小写:str.capitalize()

    str1 = 'nostalgia fly'
    str2 = str1.capitalize()
    print(str2)
    Nostalgia fly
    

    5、首字母大写:str.title()

    str1 = 'nostalgia fly'
    str2 = str1.title()
    print(str2)
    Nostalgia Fly
    

    6、应对所有字母的小写:str.casefold()

    str.lower() 只能转换ASCII字母。
    str1 = 'NOSTALGIA'
    str2 = str1.casefold()
    print(str2)
    nostalgia
    

    二、格式化

    字符串格式化:str.format()

    1,无参数

    print("{}喜欢{}".format('tom','打球'))                 #不指定位置
    print(('{0}除了{1}还是{1}').format('tom','打球') )     #指定位置
    tom喜欢打球
    tom除了打球还是打球
    

    2,设置参数

    dict1 = {'name':'tom','play':'打球'}
    print('{name}非常喜欢{play}'.format(name='tom',play='打球'))
    print('{name}非常喜欢{play}'.format(**dict1))                       #通过字典设置
    print('{0[0]}非常喜欢{0[1]}'.format(['tom','打球']))               #通过列表设置
    tom非常喜欢打球
    tom非常喜欢打球
    tom非常喜欢打球
    
    test = 'i am {name}, age {a}'
    v1 = test.format(name='df',a=10)
    v2 = test.format_map({"name": 'alex', "a": 19})             #字典
    print(v1)
    print(v2)
    i am df, age 10
    i am alex, age 19
    

    对数字的格式化

    print('{:.2f}'.format(3.1415926))
    3.14
    
    1. {:.2f}—保留小数点后两位;
    2. {:+.2f}—带符号保留小数点后两位
    3. {:.0f}—不带小数
    4. {:0>5d}—数字补零 (右对齐, 宽度为5,剩余以0填充)
    5. {:a<5d}—数字补a (左对齐, 宽度为5,剩余以a填充)
    6. {:,}—以逗号分隔的数字
    7. {:.2%}—转换百分制并保留小数点后2位
    8. {:.2e}—指数计数并保留小数点后2位
    9. {:^10d}—中间对齐

    字符串对齐

    1、左对齐:str.ljust(width[, fillchar])

    参数:width – 指定字符串长度;fillchar – 填充字符,默认为空格。
    返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
    str1 = 'NOSTALGIA'
    str2 = str1.ljust(20,'人')
    print(str2)
    NOSTALGIA人人人人人人人人人人人
    

    2、右对齐:str.rjust(width[, fillchar])

    返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
    str1 = 'NOSTALGIA'
    str2 = str1.rjust(20,'&')
    print(str2)
    &&&&&&&&&&&NOSTALGIA
    

    3、居中:str.center(width[, fillchar])

    该方法返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。
    str1 = 'NOSTALGIA'
    str2 = str1.center(20,'@')
    print(str2)
    @@@@@NOSTALGIA@@@@@@
    

    4、右对齐,以“0”填充:str.zfill(width)

    返回指定长度的字符串,原字符串右对齐,前面填充0。
    str1 = 'NOSTALGIA'
    str2 = str1.zfill(22)
    print(str2)
    0000000000000NOSTALGIA
    

    字符串断句:str.expandtabs(tabsize=8)

    test1 = 'kkkkkkkl\t'
    test2 = 'name\tage\tgender\ttom\t23\tmale\tlucy\t18\t'
    print(test1.expandtabs(20))
    print(test2.expandtabs(20))
    kkkkkkkl            
    name                age                 gender              tom                 23                  male                lucy                18                  
    

    三、字符串搜索

    1、检测字符串中是否包含子字符串 :str.find(str, beg=0, end=len(string))

    参数
    • str – 指定检索的字符串
    • beg – 开始索引,默认为0。
    • end – 结束索引,默认为字符串的长度。

      如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

    str1 = 'NOSTALGIA'
    str2 = str1.find('no')
    print(str2)
    -1
    
    str1 = 'NOSTALGIA'
    str2 = str1.find('AL')
    print(str2)
    4
    
    str1 = 'NOSTALGIA'
    str2 = str1.find('AL',5)
    print(str2)
    -1
    

    2、查找字符串最后一次出现的位置(从右向左查询)str.rfind(str, beg=0 end=len(string))

    与find查看顺序相反
    str1 = 'NOSTALGIAL'
    str2 = str1.rfind('AL')
    print(str2)
    8
    
    str1 = 'NOSTALGIAL'
    str2 = str1.find('AL')
    print(str2)
    4
    

    3、统计子字符串出现次数:str.count(sub, start= 0,end=len(string))

    可选参数为在字符串搜索的开始与结束位置
    str1 = 'NOSTALGIAL'
    str2 = str1.count('AL')
    print(str2)
    2
    

    4、index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内.

    该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

    str1 = 'NOSTALGIAL'
    str2 = str1.index('oL')
    print(str2)
    ---------------------------------------------------------------------------
    
    ValueError                                Traceback (most recent call last)
    
    <ipython-input-31-953941da824f> in <module>()
          1 str1 = 'NOSTALGIAL'
    ----> 2 str2 = str1.index('oL')
          3 print(str2)
    
    
    ValueError: substring not found
    

    5,通用方法

    (1)获取字符串长度

    test = 'wayjdsji124'
    print(len(test))
    11
    

    (2)索引与下标

    test = 'hello world'
    print(test[3])
    l
    

    (3)切片

    test = 'hello world'
    print(test[:])
    print(test[:-1])
    print(test[3:-2])
    hello world
    hello worl
    lo wor
    

    (4)取出字符串每个字符

    test = 'hello world'
    for i in test:
        print(i)
    h
    e
    l
    l
    o
    
    w
    o
    r
    l
    d
    

    四、替换

    1,字符串中的 old(旧字符串) 替换成 new(新字符串):str.replace(old, new[, max])

    如果指定第三个参数max,则替换不超过 max 次。

    str1 = "This is a good new.That is so bad.It is a big apple.It is a dog."
    str2 = str1.replace("is","was",3)
    print(str2)
    Thwas was a good new.That was so bad.It is a big apple.It is a dog.
    

    2,对应关系替换

    test =  "abcde"
    test1 = "12345"
    
    sjd = "ayewurbnsmrcksjfdorkgelg"
    qwe = str.maketrans("abcde", "12345")
    new_sjd = sjd.translate(qwe)
    print(new_sjd)
    
    1y5wur2nsmr3ksjf4orkg5lg
    

    五、字符串去除指定字符

    1、移除头尾指定字符(默认空格):str.strip([chars])

    str1 = '****       beauty   ********'
    str2=str1.strip("*")
    print(str2)
    print(str2.strip())
    
           beauty   
    beauty
    

    2、去左侧指定字符(默认空格):str.lstrip([chars])

    str1 = '****       beauty   ********'
    str2=str1.lstrip("*")
    print(str2)
           beauty   ********
    

    2、去左侧指定字符(默认空格):str.rstrip([chars])

    str1 = '****       beauty   ********'
    str2=str1.rstrip("*")
    print(str2)
    ****       beauty   
    

    字符串分割

    1、将字符串分割为列表:str.split(str=”“, num=string.count(str))

    如果参数num 有指定值,则仅分隔 num+1 个子字符串

    str1 = 'safdfg\nsfegewh\n12341y\n'
    list1 = str1.split('\n',3)
    print(list1)
    ['safdfg', 'sfegewh', '12341y', '']
    

    2,根据指定的分隔符将字符串分割成三元数组:str.partition(str)

    test = 'yourswater'
    print(test.partition('s'))
    ('your', 's', 'water')
    

    3,按照行(‘\r’, ‘\r\n’, \n’)将字符串分割成列表:str.splitlines([keepends])

    • keepends – 在输出结果里是否去掉换行符(‘\r’, ‘\r\n’, \n’),默认为 False,不包含换行符,如果为 True,则保留换行符。
    str1 = 'ab c\n\nde fg\rkl\r\n'
    print(str1.splitlines(False))
    
    str2 = 'ab c\n\nde fg\rkl\r\n'
    print(str2.splitlines(True))
    ['ab c', '', 'de fg', 'kl']
    ['ab c\n', '\n', 'de fg\r', 'kl\r\n']
    

    七、字符串判断

    1、以指定字符串开头:str.startswith(str, beg=0,end=len(string));

    str1 = 'jefrewpflmspemg42sd'
    print(str.startswith("w",5))
    True
    

    2、以指定字符串结尾:str.endswith(suffix[, start[, end]])

    str1 = 'isoaldsjfj123ksl'
    print(str1.endswith('s',3,-1))
    True
    

    3、检测字符串是否由字母和数字组成:str.isalnum()

    str1 = 'fewf125hreh'
    print(str1.isalnum())
    True
    

    4、检测字符串是否只由字母组成:str.isalpha()

    str1 = 'sjdgnewombdfg'
    print(str1.isalpha())
    True
    

    5、检测字符串是否只由数字组成:str.isdigit()
    不能有任何字符,包括”.”

    str1 = '3141592653'
    print(str1.isdigit())
    True
    

    6、检测字符串是否由小写字母组成:str.islower()

    str1 = 'sjfewovdogj'
    print(str1.islower())
    True
    

    7、检测字符串是否全由大写字母组成:str.isupper()

    str1 = 'USJEKKGHXKD'
    print(str1.isupper())
    True
    

    八、连接

    str.join(sequence) 将序列中的元素以指定的字符连接生成一个新的字符串
    
    参数sequence -- 要连接的元素序列;
    
    list1 = ['hels','sdfg','dsg','345']
    dict1 = {'god':'sdf','dgg':'we','ewr':'435'}
    tup1 = ('ty','rj','45')
    s1 = {'we','34','12'}
    print('-'.join(list1))
    print('-'.join(dict1))
    print('-'.join(tup1))
    print('-'.join(s1))
    hels-sdfg-dsg-345
    god-dgg-ewr
    ty-rj-45
    34-12-we
    
    展开全文
  • Python str()函数

    万次阅读 多人点赞 2019-11-10 15:30:43
    Python str()函数 介绍、使用和注意事项

    描述

    str函数是Python的内置函数,它将参数转换成字符串类型,即人适合阅读的形式。

     

    语法

    str(object)
    名称 说明 备注
    object 待被转换成字符串的参数 可省略的参数

    返回值:返回object的字符串形式

     

    使用示例

    1. 无参调用

    当str()函数的参数都省略时,函数返回空字符串。这种情况常用来创建空字符串或者初始化字符串变量。

    >>> str()
    ''

    2. 不省略参数

    str函数将整数、浮点数、列表、元组、字典和集合转换为字符串类型

    >>> str(-23) #整数转换为字符串
    '-23'
    
    >>> str(1.3e2) #浮点数转换为字符串
    '130.0'
    
    >>> a_list = [12, '-23.1', 'Python']
    >>> str(a_list)  #列表转换为字符串
    "[12, '-23.1', 'Python']"
    >>> str(a_list)[0]
    '['
    
    >>> a_tuple = (23, '9we', -8.5)
    >>> str(a_tuple)  #元组转换为字符串
    "(23, '9we', -8.5)"
    
    >>> a_dictionary = {'Huawei':'China', 'Apple':'USA'}
    >>> str(a_dictionary)  #字典转换为字符串
    "{'Huawei': 'China', 'Apple': 'USA'}"
    >>> str(a_dictionary)[10]
    ' '
    
    >>> a_set = {'China', 'Japan', 'UK'}
    >>> str(a_set)  #集合转换为字符串
    "{'Japan', 'UK', 'China'}"

    ⚠️注意:将列表、元组、字典和集合转换为字符串后,包裹列表、元组、字典和集合的'['、']'、'('、')'、'{'、'}',以及列表、元组、字典和集合中的元素分隔符',',和字典中键值对':'也都转换成了字符串,是转换后字符串的一部分。

     

    注意事项

    str()函数可以将字符串类型转换为字符串,这一过程不会有任何报错,但是会产生额外的时空消耗。

    >>> str('asdf')
    'asdf'

     

    本质意义

    展开全文
  • str

    2020-04-28 12:21:31
    ,由单引号、双引号、三单引,三双引前后包起来的都算是str。如: 'hello,word' "hi,007" '''你好,世界!''' """3月芳菲""" 定义了字符串,接下来就是对它进行操作。首先要了解字符串是不可变型数据。 对字符串的...

    想做个爬虫小工具辅助工作,初学Python,写博客记录,加深理解。

    <class ‘str’>,由单引号、双引号、三单引,三双引前后包起来的都算是str。如:

    'hello,word'    "hi,007"    '''你好,世界!'''    """3月芳菲"""
    

    定义了字符串,接下来就是对它进行操作。首先要了解字符串是不可变型数据。
    对字符串的操作方法很多,有些方法使用较多,也较重要。

    1.str.index(), str.find()。在字符串中查找指定数据,返回其下标(索引)
    两个方法区别是,find找不到返回数值-1,index找不到系统报错(ValueError: substring not found)

    格式:
    my_str.index(sub="", __start="",__end="")
    my_str.find(sub="",__start="",__end="")

    如:my_str = "abcd和ABCD"
    	print(my_str.find("AB"))
    

    5
    注:在str,list,tuple,range()中,第一个元素的下标都是从0开始计。

    2.str.endwith(), str.startwith()。判断字符串是否是以指定的数据为结尾或开头,返回bool值。

    my_str = "abcd-ABCD"
    print(my_str.startswith("A"), my_str.endswith("D"))
    

    False True

    3.replace()。用指定数据去替换字符串中原有的数据

    格式: my_str.replace(__old="",__new="",__count=)

    my_str = "我是谁,我从哪里来,我要到哪里去?"
    print(my_str, id(my_str))
    new_str = my_str.replace("我", "I", 2)
    print(new_str, id(new_str))
    

    我是谁,我从哪里来,我要到哪里去? 1366704
    I 是谁,I 从哪里来,我要到哪里去? 31570720

    可见,字符串是不可变类型,被修改后,在内存中的存储位置都变化了。

    4.str.splitlines(), str.split()。
    前者以换行符分割字符串,后者以指定数据去分割字符串。返回的是一个列表。

    格式:
    my_str.split(sep="",maxsplit=int)
    my_str.splitlines()

    my_str = "oh, my god, what's wrong?"
    print(my_str.split(sep=",",maxsplit=2 ))
    my_str2 = "床前明月光,\n疑是地上霜。\n举头望明月,\n低头思故乡。"
    print(my_str2.splitlines())
    

    [‘oh’, ’ my god’, " what’s wrong?"]
    [‘床前明月光,’, ‘疑是地上霜。’, ‘举头望明月,’, ‘低头思故乡。’]

    5.str.partition(), str.rpartition().
    前者根据指定数据把字符串分割成三部分。后者根据指定数据,从右边查找,把字符串分割成三部分。

    my_str = "三国演义.txt.txt"
    print(my_str.partition("."))
    print(my_str.rpartition("."))
    

    (‘三国演义’, ‘.’, ‘txt.txt’)
    (‘三国演义.txt’, ‘.’, ‘txt’)

    rpartition()很实用。因为最后一个后缀应该才是文件的真正类型。
    对字符串的处理,有很多正-反两面进行的。
    对字符串的处理,有很多正-反顺序都可以进行的方法。

    6.jion()
    对字符串中的每一个元素用指定数据连接。

    my_str = "my god,好险!"
    print("+".join(my_str))
    

    m+y+ +g+o+d+,+好+险+!

    “+”号也可以连接字符串。感觉这种拼接方式在实际中更好用!

    str1 = "哈哈,"
    str2 = "就是这个范!"
    print(str1 + str2)
    

    哈哈,就是这个范!

    7. str.isdigit(), 字符串有很多is打头的判断属性的方法。
    字符串有很多is打头的判断属性的方法。

    my.isdigit() # => 纯数字。数字包括⑵ 和 ②
    my.isalpha() # => 纯字母(包括汉字)
    my.isalnum() # => 纯数字、纯字符、数字+字符三种情况都返回True。空格、符号都不行。

    8. count(), len()
    前者统计指定数据在字符串中总计出现的次数,后者返回指定字符串的长度。

    str3 = "aababcabcdAABABCABCD"
    print(str3.count("a"))
    
    str4 = "hi,吃饭了吗?"
    print(len(str4))
    

    4
    8

    9.下标 ,不仅字符串使用,list,tuple使用得更频繁
    字符串中,元素所处位置称为下标(索引),就是index()和find()中返回的值。Pyton中对字符串的操作方法,很多都可以通过使用下标指定范围,对范围内的字符串进行操作.如:index(), find(), replace(), count(), endwith(), startwith().

    10, in, not in,判断指定数据是否存在指定字符串中。比遍历方便!

    str5 = "Users/Administrator/Desktop"
    print("top" not in str5)
    print("top" in str5)
    

    False
    True

    11.字符串从尾到头输出

    my_str = "我是谁,我从哪里来,我要到哪里去?"
    new_str = my_str[::-1]
    print(new_str)
    

    我是谁,我从哪里来,我要到哪里去?
    ?去里哪到要我,来里哪从我,谁是我

    后记:有些没写下来,以后再来修改。有些是其他类型能用,并且用得更频繁的,字符串这里也没有提到。

    展开全文
  • str[]与*str的区别

    千次阅读 2018-12-16 20:16:08
    #include&amp;lt;stdio.h&amp;gt; int main() { char pstr[] = &quot;strins&quot;; *(pstr + 1) = 'a';...“abc”实质是一个常量,初始化时将其赋值(拷贝)给str 除非在初始
    #include<stdio.h>
    int main() {
    	char pstr[] = "strins";
    	*(pstr + 1) = 'a';
    	printf("%s\n", pstr);
    	return 0;
    }
    

    输出结果是sarins
    此种方式,数组的长度由编译器确认, []里面不填数据
    “abc”实质是一个常量,初始化时将其赋值(拷贝)给str
    除非在初始化阶段,否则不能这样赋值!
    此后可以对str进行修改,如:str[2]=‘a’;

    #include<stdio.h>
    int main() {
    	char *pstr = "strins";
    	*(pstr + 1) = 'a';
    	printf("%s\n", pstr);
    	return 0;
    }
    

    编译报错
    E0144 “const char *” 类型的值不能用于初始化 “char *” 类型的实体
    C2440 “初始化”: 无法从“const char [7]”转换为“char *”

    #include<stdio.h>
    int main() {
    	const char *pstr = "strins";
        printf("%s\n", pstr);
    	return 0;
    }
    
    

    改成这样编译器就不再报错了,但是此字符串无法修改,该指针指向一个常量字符串。

    展开全文
  • String...str是什么?

    千次阅读 2016-09-06 21:21:29
    public void test(String...str) { System.out.println("***形参长度可变的方法***"); } 这种参数写法的意思就是:可以输入多个String类型的参数,也可以不输入
  • Python中__str__的用法

    千次阅读 2018-08-29 11:12:37
    __str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): 不使用 __str__ ,print打印出来是个对象;使用了就把对象变成字符串 class Person(object): def __init__(self, name, gender)...
  • __str__()方法

    千次阅读 2018-07-23 00:08:26
    定义__str__()方法 class Cat: """定义一个猫类""" def __init__(self, new_name, new_age): """在创建完对象之后 会自动调用, 它完成对象的初始化的功能"...
  • R语言学习笔记之str函数

    万次阅读 2018-01-11 16:37:16
    str函数 即structure,紧凑的显示对象内部结构,即对象里有什么。 例如:当我们head数据的时候,若某列内容太多,则不会显示出来,而用str函数,便可在窗口中逐行显示数据中列的内容。 如下图,读取数据如下: ...
  • 浅谈String str = "" 和 new String()的区别

    万次阅读 多人点赞 2018-09-20 15:44:52
    关于String类的知识经常出现在面试题中,在此先记录自己的理解。...String str1= “abc”; 在编译期,JVM会去常量池来查找是否存在“abc”,如果不存在,就在常量池中开辟一个空间来存储“abc”;如果存在,就...
  • 【Python】str()函数

    万次阅读 多人点赞 2020-02-04 02:47:48
    我们经常需要再消息中使用变量的值。例如,假设我们要祝人生日快乐,可能会编写类似下面的代码: age=20 message="Happy " + age + "th Btrthday!" print(message) 但是如果运行这些代码,会引发错误。...
  • Python __str__() 方法

    千次阅读 2019-06-13 04:38:30
    __str__方法和__init__方法类似,都是一些特殊方法,所以前后都有双下划线,它用来返回对象的字符串表达式 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): 不使用__str__()方法 class Student...
  • 前提:list以及array是python中经常会用到的数据类型,当需要对list以及array进行文件的读写操作的时候,由于write函数参数需要的是一个str,所以这时就需要对list或者array进行str的转换了。list和array的不同:在...
  • python中字符串(str)的常用处理方法

    万次阅读 2016-07-03 17:48:43
    str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str) 例:print '%s length=%d' % (str,len(str)) 一、字母处理 全部大写:str.upper() 全部小写:str.lower() 大...
  • 因为python跟java在数据类型转换方面语法不同,所以总是搞混,特此记录下来,方便查阅: ...int转换成字符串str: str_value = str(int_value) int -> unicode: unicode(int_value) unicode -> int: int(u
  • python的学习使用中遇到了这个错误:can only concatenate str (not "int") to str; 上网查过后发现是因为我没有做数据类型的转换,python并不能像java一样,在做拼接的时候自动把类型转换为string类型; ...
  • python中,拼接字符串较为特殊,需要以 正确写法为: msg = '我有%d'%(self.num) + '个苹果' 错误写法为: msg = '我有' + (self.num) + '个苹果'  
  • str2num 函数与 str2double 函数的相同点与不同点 1. 相同点:当str为一个含数字的字符串时,str2num 函数与 str2double 函数一样。 如: 2. 不同点:当str为多个字符串构成的数组时,str2num 函数与 str2...
  • numpy和str互转

    万次阅读 2020-01-04 12:49:39
    json.loads("[1,2,3]") 就是这么简单 import json json.loads("[1,2,3,4]") [1, 2, 3, 4]
  • Matlab中num2str函数的用法

    万次阅读 多人点赞 2016-07-06 07:42:41
    在matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。   语法格式:  str = num2str(A)  把数组A中的数转换成字符串表示形式。  str = num2str(A, precision)  把数组A转换成字符...
  • R语言——str函数

    万次阅读 2015-08-26 19:00:28
    str函数 structure,紧凑地显示对象内部结构,即对象里有什么。
1 2 3 4 5 ... 20
收藏数 2,025,176
精华内容 810,070
关键字:

str