小甲鱼 发表于 2020-11-25 06:01:20

已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览 购买主题

小古比鱼 发表于 2020-12-18 11:42:34

这节讲的是有关字符串“判断”的14个方法,均返回布尔值。其中,startswith()和endswith()方法可以元组的形式传入多个待匹配字符串,方便灵活!以平方字符、罗马字符和汉字字符为例,对比了isdecimal()、isdigit()和isnumeric()三种方法之间的区别,发现isdecimal()适用范围最窄,而isnumeric()适用范围最广,是最能“经受考验”的,这也是本节最有意思的地方!此外,对于同一个语句中连续调用多个方法的情况,Python会从左往右依次调用各方法。这种写法很简洁,由此也不难看出Python很聪明!视频最后还补充了利用keyword模块里的iskeyword()方法来对Python关键字进行判断的“冷知识”!

永恒的蓝色梦想 发表于 2021-2-9 15:02:37

小古比鱼 发表于 2020-12-18 11:42
这节讲的是有关字符串“判断”的14个方法,均返回布尔值。其中,startswith()和endswith()方法可以元组的形 ...

对于同一个语句中连续调用多个方法的情况,Python会从左往右依次调用各方法。这种写法很简洁,由此也不难看出Python很聪明面向对象的语言都是这么干的

zdasd 发表于 2021-5-19 10:55:55

**字符串3**

判断和检测(返回的都应该是一个布尔类型的值,即True或者False):startswitb(prefix[,start[,end]])    endswith(suffix[,start[,end]])
isupper()   islower()    istitle()   isalpha()   isascii()    isspace()   isprintable()
isdecimal()    isdigit()   isnumeric()    isalnum()   isidentifier()

startswitb(prefix[,start[,end]]:用于判断它这个参数指定的子字符串是否出现在字符串的起始位置(如果存在 prefix 参数指定的前缀子字符串,则返回 True,否则返回 False);可选参数 start 和 end 用于指定起始和结束位置;prefix 参数允许以元组的形式提供多个子字符串

>>> x = "我爱Python"
>>> x.startswith("我")
True
>>> x.startswith("小甲鱼")
False
>>> x.startswith("我",1)
False
>>> x.startswith("爱",1)
True

endswith(suffix[,start[,end]]):用于判断它这个参数指定的子字符串是否出现在字符串的结束位置(如果字符串是以 suffix 指定的子字符串为结尾,那么返回 True,否则返回 False);可选参数 start 和 end 用于指定起始和结束位置;suffix 参数允许以元组的形式提供多个子字符串

>>> x.endswith("Python")
True
>>> x.endswith("Py")
False
>>> x.endswith("Py",0,4)
True


>>> if x.startswith(("你", "我", "她")):
        print("总有人喜爱Python")
总有人喜爱Python
[使用元组]

istitle():如果字符串是标题化字符串(所有的单词都是以大写开始,其余字母均小写)则返回 True,否则返回 False

>>> x = "I love Python"
>>> x.istitle()
False
>>> x = "I Love Python"
>>> x.istitle()
True

isupper():如果字符串中至少包含一个区分大小写的英文字母,并且这些字母都是大写,则返回 True,否则返回 False

>>> x.isupper()
False
>>> x.upper().isupper()
True
[在一个语句中连续调用多个方法,Python是从左往右依次进行调用;Python是先通过调用upper()方法将字符串全体成员转换成大写字母的新字符串,然后再调用isupper()方法来进行判断]

islower():如果字符串中至少包含一个区分大小写的英文字母,并且这些字母都是小写,则返回 True,否则返回 False

>>> x.islower()
False

isalpha():如果字符串中至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

>>> x.isalpha()
False
>>> "IlovePython".isalpha()
True
>>> "I爱Python".isalpha()
True
[空格不是字母,中文支持检测为字母]

isspace():如果字符串中至少有一个字符并且所有字符都是空格,则返回 True,否则返回 False

>>> "           \n".isspace()
True


isprintable():如果字符串是可以打印的内容则返回 True,否则返回 False

>>> x.isprintable()
True
>>> "I love Fishc\n".isprintable()
False
[\n这个转义字符不是一个可打印字符]

isdecimal():如果字符串中至少有一个字符并且所有字符都是十进制数字则返回 True,否则返回 False

isdigit():如果字符串中至少有一个字符并且所有字符都是数字则返回 True,否则返回 False

isnumeric():如果字符串中至少有一个字符并且所有字符都是数字则返回 True,否则返回 False

>>> x = "12345"
>>> x.isdecimal()
True
>>> x.isdigit()
True
>>> x.isnumeric()
True
>>> x = "22"
>>> x.isdecimal()
False
>>> x.isdigit()
True
>>> x.isnumeric()
True
>>> x = "ⅠⅡⅢⅣⅤ"
>>> x.isdecimal()
False
>>> x.isdigit()
False
>>> x.isnumeric()
True
>>> x = "一二三四五"
>>> x.isdecimal()
False
>>> x.isdigit()
False
>>> x.isnumeric()
True

isalnum():如果字符串中至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False【只要isalpha(),isdecimal(),isdigit(),isnumeric()中任意一个方法返回True,那么结果都True】

isidentifier():如果字符串是一个合法的 Python 标识符则返回 True,否则返回 False;调用 keyword.iskeyword(s) 可以检测字符串是否一个保留标识符(比如 "if" 或 "for")

>>> "I am a good guy".isidentifier()
False
>>> "I_am_a_good_guy".isidentifier()
True
>>> "Fishc520".isidentifier()
True
>>> "520Fishc".isidentifier()
False
[将空格全部替换成下划线,标识符不能以数字为开头]

如果你想判断一个字符串是否为Python的保留标识符(if,for,while等关键字),那么我们可以使用keyword模块的iskeyword函数来进行实现,要使用模块,需先导入模块

>>> import keyword
>>> keyword.iskeyword("if")
True
>>> keyword.iskeyword("py")
False

痴我一拳 发表于 2021-5-20 14:22:00

>>> x = "我爱Python"
>>> x.startswith("我")
True
>>> x.startswith("小甲鱼")
False
>>> x.endswith("Python")
True
>>> x.endswith("Py")
False
>>> x.startswith("我",1)
False
>>> x.startswith("爱",1)
True
>>> x.endswith("Py",0,4)
True
>>> x = "她爱Python"
>>> if x.startswith(("你","我","她")):
SyntaxError: invalid character ':' (U+FF1A)
>>> if x.startswith(("你","我","她")):
        print("总有人喜爱Python")

       
总有人喜爱Python
>>> x = "I love Python"
>>> x.istitle()
False
>>> x.isupper()
False
>>> x.upper().isupper()
True
>>> x.islower()
False
>>> x.lower().islower()
True
>>> x.isalpha()
False
>>> x ="IlovePython"
>>> x.isalpha()
True
>>> "          \n".isspace()
True
>>> x.isprintable()
True
>>> "I love Python\n".ispritable()
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
    "I love Python\n".ispritable()
AttributeError: 'str' object has no attribute 'ispritable'
>>> "I love Python\n".isprintable()
False
>>> x = "12345"
>>> x.isdecimal()
True
>>> x.isdigit()
True
>>> x.isnumeric()
True
>>> x ="22"
>>> x.decimal()
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
    x.decimal()
AttributeError: 'str' object has no attribute 'decimal'
>>> x.isdecimal()
False
>>> x.isdigit()
True
>>> x.isnumeric()
True
>>> x = "Ⅰ"
>>> x = "ⅠⅡⅢⅣⅤ"
>>> x.isdecimal()
False
>>> x.isdigit()
False
>>> x.isnumeric()
True
>>> x = "一二三四五"
>>> x.isdecimal()
False
>>> x.isdigit()
False
>>> x.isnumeric()
True
>>> "I am a good guy".isidentifier()
False
>>> "I_am_good_guy".isidentifier()
True
>>> "FishC520".isidentifier()
True
>>> "520FishC".isidentifier()
False
>>> import keyword
>>> keyword.iskeyword("if")
True
>>> keyword.iskeyword("py")
False
>>>

wangtuan 发表于 2021-11-26 15:50:22

>>> x = '我爱Python'
>>> x.startwith('我')
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
    x.startwith('我')
AttributeError: 'str' object has no attribute 'startwith'
>>> x.startswith('我')
True
>>> x.startswith('爱')
False
>>> x.endswith('Python')
True
>>> x.endswith('Py')
False
>>> x.startswith('我',1)
False
>>> x.startswith('爱',1)
True
>>> x.endswith('Py',0,4)
True
>>> x = '她爱Python'
>>> if x.startswith(('你','我','她')):
        print('总有人喜欢python')

       
总有人喜欢python
>>> x = 'I love python'
>>> x.istitle()
False
>>> x.isupper()
False
>>> x.upper().isupper()
True
>>> x.islower()
False
>>> x.isalpha()
False
>>> 'Ilovepython'.isalpha()
True
>>> '        \n'isspace()
SyntaxError: invalid syntax
>>> "        \n".isspace()
True
>>> x.isprintable()
True
>>> 'I Love python\n'.isprintable()
False
>>> x = '12345'
>>> x.isdecimal()
True
>>> x.isdigit()
True
>>> x.isnumeric()
True
>>> x = '2 ** 2'
>>> x.sidecimal()
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
    x.sidecimal()
AttributeError: 'str' object has no attribute 'sidecimal'
>>> x = 'ⅠⅡⅢⅣ'
>>> x.decimal()
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
    x.decimal()
AttributeError: 'str' object has no attribute 'decimal'
>>> x = 'ⅡⅢⅣ'
>>> x.isdecimai()
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
    x.isdecimai()
AttributeError: 'str' object has no attribute 'isdecimai'
>>> x.isdecimal()
False
>>> x.isdigital()
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
    x.isdigital()
AttributeError: 'str' object has no attribute 'isdigital'
>>> x.isdigit()
False
>>> x.isnumeric()
True
>>> x = '一二三四五'
>>> x.isnumeric()
True
>>> x.isdecimal
<built-in method isdecimal of str object at 0x0000019E21132F90>
>>> x.isdecima()
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
    x.isdecima()
AttributeError: 'str' object has no attribute 'isdecima'
>>> x.isdecimal()
False
>>> x.isdigit()
False
>>> 'I am a good gay'.isidentifier()
False
>>> 'I_am_a_good_gay'.isidentifier()
True
>>> 'love520'.isidentifier()
True
>>> '520love'.isidentifier()
False
>>> import keyword
>>> keyword.iskeyword('if')
True
>>> keyword.iskeyword('py')
False
>>>

llv19890826 发表于 2022-2-20 13:25:56

0,True

1,false 有转义符

2, isdecimal()最严格,isnumeric()最宽松

3, False ,这里面没有字母或数字

4, s.isalpha()

5, True ,是合法的Python标识符

0
text= input('请输入text:')
words=input('请输入words:')
i = 0
s = []

while i < len(words):
    if ' ' not in words:
      x = words
      length = len(x)
      n = 0
      while n != -1:
            n = text.find(x,n)
            if n != -1:
                s.append()
                n += 1
      break
      
    elif words == ' ':
      x = words[:i]
      length = len(x)
      n = 0
      while n != -1:
            n = text.find(x,n)
            if n != -1:
                s.append()
                n += 1
      words = words
      i = 0
      
    else:
      i += 1

print(s)
   


1
s = input('请输入一个由字母构成的字符串:')
n = len(s)

for i in range(1,n):
    if n % i == 0:
      s1 = s[:i]
      if s.count(s1) == n//i:
            print('True')
            break
else :
    print('False')
   

ASM023 发表于 2022-2-25 20:23:45

打卡~~{:10_281:}{:10_281:}

Er3nYeager 发表于 2022-4-20 10:44:00

学习打卡

码农心 发表于 2022-5-9 15:54:07

就很好奇你们这群程序员是如何记住这么多不认识的玩意儿的

Milanero 发表于 2022-8-3 09:37:17

打卡

ctx111 发表于 2022-8-5 12:57:18

>>> x='我爱丝袜'
>>> x.startswith('我')
True
>>> x.startswith('我1')
False
>>> x.endswith('袜')
True
>>> x.endswith('丝袜')
True
>>> x.endswith('爱丝袜')
True
>>> x.endswith('我爱丝袜')
True
>>> x.startswith('丝',2)
True
>>> x.endswith('爱丝')
False
>>> x.endswith('爱丝',0,3)
True
>>> x='她爱丝袜'
>>> if x.startswith(('你','我','她')):
        print('总有人爱丝袜')

       
总有人爱丝袜
>>> x = "I love Python"
>>> x.istitle()
False
>>> x = "I Love Python"
>>> x.istitle()
True
>>> x.upper().isupper()
True
>>> x.lower().islower()
True
>>> x.isalpha()
False
>>> x='IlovePython'
>>> x.isalpha()
True
>>> '        \n'.isspace()
True
>>> '        '.isspace()
True
>>> '        \t'.ispace()
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
    '        \t'.ispace()
AttributeError: 'str' object has no attribute 'ispace'
>>> '        \t\n'.isspace()
True
>>> '111\n'.isprintable()
False
>>> import keyword
>>> keyword.iskeyword('while')
True
>>> keyword.iskeyword('while1')
False
>>> '1ee'.isidentifier()
False
>>> 'ee1'.isidentifier()
True
>>> '贰'.isalnum()
True
>>> '②'.isalnum()
True
>>>

chenjinchao 发表于 2022-9-20 17:43:45

好多知识点

墨墨在努力吖 发表于 2022-10-3 16:41:29

滴滴滴~打卡{:10_298:}

hornwong 发表于 2022-10-25 23:45:39

{:5_109:}

荔Ⅹ 发表于 2022-10-28 15:35:44

学习学习(但感觉记不住需要多练习

空白君学python 发表于 2022-11-1 17:48:05

ctx111 发表于 2022-8-5 12:57
>>> x='我爱丝袜'
>>> x.startswith('我')
True


丝袜很好

migu_sm1 发表于 2022-11-2 16:05:39

Learning...第一节评论只有一页的课.

huangwenyue 发表于 2022-11-2 22:04:00

标识符:可以用作变量命名的

jgz1818 发表于 2022-11-22 21:08:41

各位觉得是看完视频再看书比较好呢,还是先看书再看视频好呢?{:10_256:}
页: [1] 2
查看完整版本: 第029讲:字符串(III)