in和not in的基本用法
Python是一种流行的编程语言,它有许多内置的操作符,可以对数据进行各种操作。其中两个常用的操作符是in和not in,它们可以用来检查一个值是否在一个序列(如列表、元组、字符串或字典)中,或者是否不在一个序列中。本文将介绍python in和not in的基本用法,以及一些实际的例子。
in操作符
in操作符可以用来检查一个值是否在一个序列中,如果是,返回True,否则返回False。例如:
# 检查一个值是否在列表中
>>>3in [1, 2, 3, 4]
True
>>>5in [1, 2, 3, 4]
False
# 检查一个值是否在元组中
>>>'a'in ('a', 'b', 'c')
True
>>>'d'in ('a', 'b', 'c')
False
# 检查一个值是否在字符串中
>>>'py'in'python'
True
>>>'th'in'python'
True
>>>'on'in'python'
True
>>>'yt'in'python'
False
# 检查一个键是否在字典中
>>>'name'in {'name': 'Alice', 'age': 18}
True
>>>'gender'in {'name': 'Alice', 'age': 18}
False
in操作符也可以用来检查一个序列是否是另一个序列的子序列,即是否包含在另一个序列中。例如:
# 检查一个列表是否是另一个列表的子序列
>>> [1, 2] in [1, 2, 3, 4]
False
>>> [1, 2] in [[1, 2], [3, 4]]
True
# 检查一个元组是否是另一个元组的子序列
>>> (1, 2) in (1, 2, 3, 4)
False
>>> (1, 2) in [(1, 2), (3, 4)]
True
# 检查一个字符串是否是另一个字符串的子串
>>>'py'in'python'
True
>>>'py'in ['py', 'thon']
True
注意,如果要检查一个序列是否是另一个序列的子序列,需要把它作为一个整体放在in操作符的左边,不能把它拆开成多个元素。例如:
# 错误的写法
>>>1, 2in [1, 2, 3, 4]
False
# 正确的写法
>>> (1, 2) in [1, 2, 3, 4]
False
not in操作符
not in操作符可以用来检查一个值是否不在一个序列中,如果是,返回True,否则返回False。它相当于对in操作符的结果取反。例如:
# 检查一个值是否不在列表中
>>>3not in [1, 2, 3, 4]
False
>>>5not in [1, 2, 3, 4]
True
# 检查一个值是否不在元组中
>>>'a'not in ('a', 'b', 'c')
False
>>>'d'not in ('a', 'b', 'c')
True
# 检查一个值是否不在字符串中
>>>'py'not in'python'
False
>>>'yt'not in'python'
True
# 检查一个键是否不在字典中
>>>'name'not in {'name': 'Alice', 'age': 18}
False
>>>'gender'not in {'name': 'Alice', 'age': 18}
True
not in操作符也可以用来检查一个序列是否不是另一个序列的子序列,即是否不包含在另一个序列中。例如:
# 检查一个列表是否不是另一个列表的子序列
>>> [1, 2] not in [1, 2, 3, 4]
True
>>> [1, 2] not in [[1, 2], [3, 4]]
False
# 检查一个元组是否不是另一个元组的子序列
>>> (1, 2) not in (1, 2, 3, 4)
True
>>> (1, 2) not in [(1, 2), (3, 4)]
False
# 检查一个字符串是否不是另一个字符串的子串
>>>'py'not in'python'
False
>>>'yt'not in'python'
True
in和not in的应用场景
in和not in操作符可以用来实现一些常见的编程需求,例如:判断用户输入的值是否在有效范围内,例如:
# 判断用户输入的颜是否在预设的颜列表中
colors = ['red', 'green', 'blue', 'yellow']
user_color =input('Enter a color: ')
if user_color in colors:
print('Your color is valid.')
else:
print('Your color is invalid.')
判断一个元素是否在集合中,例如:
# 判断一个数字是否是质数(只能被1和自身整除的数)
def is_prime(n):
# 如果n小于等于1,返回False
if n <=1:
return False
# 如果n等于2或3,返回True
if n ==2or n ==3:
return True
# 如果n能被2或3整除,返回False
if n %2==0or n %3==0:
in运算符的含义return False
# 创建一个从5开始,步长为6的迭代器,用来生成可能的因数
i =5
while i * i <= n:
# 如果n能被i或i+2整除,返回False
if n % i ==0or n % (i +2) ==0:
return False
# 更新i为下一个可能的因数
i +=6
# 如果以上都不满足,返回True
return True
# 创建一个空集合,用来存放质数
primes =set()
# 遍历1到100之间的数,判断是否是质数,并添加到集合中
for num in range(1, 101):
if is_prime(num):
primes.add(num)
# 打印集合中的质数个数和内容
print(f'There are {len(primes)} primes between 1 and 100.') print(primes)
# 判断用户输入的数是否在集合中,即是否是质数
user_num =int(input('Enter a number: '))
if user_num in primes:
print(f'{user_num} is a prime.')
else:
print(f'{user_num} is not a prime.')
判断一个字符串是否包含某个子串,例如:
# 判断用户输入的邮箱地址是否包含@符号
user_email =input('Enter your email address: ')
if'@'in user_email:
print('Your email address is valid.')
else:
print('Your email address is invalid.')判断一个序列是否为空,例如:
# 判断用户输入的字符串是否为空
user_str =input('Enter a string: ')
if user_str =='':
print('Your string is empty.')
else:
print('Your string is not empty.')

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。