master
/ 2.6.2 成员运算.ipynb

2.6.2 成员运算.ipynb @masterview markup · raw · history · blame

Notebook

成员运算

运算符 in 和 not in 用于成员检测,返回布尔值True 或 False。如果 x 是 s 的成员则 x in s 值为 True,否则为 False。 x not in s 返回 x in s 取反后的值。所有内置序列和集合类型以及字典都支持此运算,对于字典来说 in 检测其是否在字典的键中存在。 对于字符串和字节串类型来说,当且仅当 x 是 y 的子串时 x in y 为 True。空字符串总是被视为任何其他字符串的子串,因此 "" in "abc" 将返回 True。成员运算符的描述如表 2.2 所示。

运算符 描述 实例
in 如果对象在某一个序列中存在,返回 True,否则返回 False print('u' in ['U','u','USD']) # 输出 True
not in 如果对象在某一个序列中不存在,返回 True,否则返回 False print('r' not in ['U','u','USD']) # 输出True

Python 中的成员运算使用语法是:

In [ ]:
obj [not] in sequence
  • ##### x in s :如果 x __是__ s 的__成员__则返回值值为True,否则为False。

  • ##### x not in s :如果 x __不是__ s 的__成员__则返回值为True,否则为False。即返回x in s 取反后的值。

s 可以是字符串,列表、元组、range、字典的键、集合等。

  • 对于字符串和字节串类型来说,当且仅当x 是y 的__子串__时,x in y 为True
In [1]:
print('admin' in 'administrator')    # True
print('ada' in 'administrator')      # False
print(' ' in 'admin')                # False,空格字符串
True
False
False

__空字符串__总是被视为任何其他字符串的__子串__。</font>

In [3]:
print('' in 'admin')    # True,空字符串
print(' ' in 'admin')   # False,空格字符串

for i in range(10):
    print(i)
    
True
False
0
1
2
3
4
5
6
7
8
9
  • ### 所有内置序列、集合类型、字典都支持__成员运算__,测试元素 x 是否为对象 s 的一个成员(元素)。
In [4]:
print(10 in range(1, 20))               # True,range(1,20)生成的数据中包含10
print('me' in {'you', 'me', 'he'})      # True,字符串'me'为集合中的一个元素
print('she' in {'you', 'me', 'he'})     # False,集合元素中不包含字符串'she'
print(2 in [1, 2, 3, 4, 5])             # True,整数2为列表中的一个元素
print(6 in (1, 2, 3, 4, 5))             # False,元组元素中不包含整数6
True
True
False
True
False

注意下面两种情况的区别。

In [5]:
print([1, 2] in [[1, 1], [1, 2], [1, 3]])  # True,列表[1, 2]为后面列表中的一个元素
print([1, 2] in [1, 2, 3, 4, 5])           # False,后面的列表中所有元素均为整数,并不包含列表1, 2]

对于字典来说成员运算检测对象是否在__字典的键__中存在。</font>

In [6]:
print('me' in {'you': 100, 'me': 1000, 'he': 50})  # True
print(100 in {'you': 100, 'me': 1000, 'he': 50})   # False

实例2.2 判断字符类型

输入一个字符,判断这个字符是小写字母还是数字。 判定一个字符的类型,可以用成员运算,用in检测目标是否在对应的字符集中存在,若目标在所有字母构成的字符串中存在则该字符是字母,若目标在所有数字构成的字符串中存在,则该字符是数字字符。

In [7]:
letter = input()             # 输入一个字符
ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'  # 所有字母
if letter in ascii_letters:  # 成员检测,输入字符在字母字符串中存在时
    print('这是字母')         # 输出'这是字母'
if letter in '0123456789':   # 成员检测,输入字符在数字字符串中存在时
    print('这是数字')         # 输出'这是数字'

练一练

完成下面的程序,判断输入的字符是否为元音字母(大小写不限)。

用户输入一个字符,若该字符为英文元音字母,则输出'这是元音字母';否则输出'这不是元音字母'。

输入输出样例:

输入:a
输出:这是元音字母

输入:Q
输出:这不是元音字母

提示:考虑大小写,元音字母包括A、E、I、O、U、a、e、i、o、u

In [7]:
c = input()
# 参考前面的实例,补充代码,判断输入的c是否为元音字母
In [ ]:
测试输出
A
字母A是元音字母
i
字母i是元音字母
z
字母z不是元音字母