首页 > 代码库 > 集合与条件、循环语句

集合与条件、循环语句

集合

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

集合操作符和关系符号:

技术分享

 

常用操作

技术分享
s = set([3,5,9,10])      #创建一个数值集合  
  
t = set("Hello")         #创建一个唯一字符的集合  


a = t | s          # t 和 s的并集  
  
b = t & s          # t 和 s的交集  
  
c = t – s          # 求差集(项在t中,但不在s中)  
  
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
  
   
  
基本操作:  
  
t.add(x)            # 添加一项  
  
s.update([10,37,42])  # 在s中添加多项  
  
   
  
使用remove()可以删除一项:  
  
t.remove(H)  
  
  
len(s)  
set 的长度  
  
x in s  
测试 x 是否是 s 的成员  
  
x not in s  
测试 x 是否不是 s 的成员  
  
s.issubset(t)  
s <= t  
测试是否 s 中的每一个元素都在 t 中  
  
s.issuperset(t)  
s >= t  
测试是否 t 中的每一个元素都在 s 中  
  
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
  
s.copy()  
返回 set “s”的一个浅复制
View Code

 

条件语句

  如果if条件(在fi和冒号之间的表达式)为真,执行后面的语句块;如果为假,则执行else后面的语句块:

技术分享
import getpass

user_name=Li
pass_word=("123")

username=input("username;")
password=getpass.getpass("password:")

if user_name==username and pass_word==password:
    print("Welcome {name} to login...".format(name=user_name))
else:
    print("Invalid username or password")
View Code

  如果要检查多个条件,就可以使用elif:

技术分享
#猜数字 范围1-10
num=6

guess=int(input(Please input your guess num:))
if guess>num:
    print(bigger!)
elif guess<num:
    print("smaller!")
else:
    print("You done a great job!")
View Code

循环

continue:跳出当前循环,进入下一轮循环

break:结束(跳出)循环

while循环

技术分享
#猜数字 范围1-10  超过三遍自动退出
num=6
count=0 #添加一个计数器
while count<3:
    guess=int(input(please input your guess:))
    count += 1
    if 0<guess<11:
        if guess>num:
            print(bigger!)
        elif guess<num:
            print("smaller!")
        else:
            print("You done a great job!")
            break
    else:
        print(over the range!)
else:
    print(你的机会以用完!)
View Code

 

for循环

  while语句非常灵活。它可以用来在任何条件为真的情况下重复执行一个代码块,但当要为一个集合(序列和其他可迭代对象)的每个元素都执行一个代码块时,我们就要用到for循环了。

技术分享
 for i in range(10):
    if i%2==0:
        print(i)

        
0
2
4
6
8    
View Code

enumerate: 

  枚举为可迭代的对象添加序号

技术分享
list=[1,3,5,6,7]
for k,v in enumerate(list,1): #从1开始
    print(k,v)
View Code

 

集合与条件、循环语句