问题:
有两个班级,查询两个班级名字一样的同学
解题:
创建两个数组,将两个班级的同学名称放进去
接着将两个数组进行比较
python 集合
一个无序的集,用来保存不重复的数据;用 ”,“ 隔开,整体用 ”{}“ 括起来。
集合只能储存基础数据类型,包括 整型、浮点型、字符串、元组
创建集合可以用 “{}” 或者set()
但如果想要创建一个空集合,要用set();否者,空 {} 会默认创建为字典
注意:
集合输入可以有重复值,但是输出一定没有
集合内如果想要输出 除数字外的元素,一定要用 “” 圈起来
否则python不知道他是单纯的元素,还是一个赋值的字符
a='abcde' #a是一个字符串
print(a)
test=set(a) #set(a) 将字符串转化为集合
print(test)
print( )
b=[1,2,3] #b是一个列表
print(b)
test=set(b) #将列表转化为集合
print(test)
print( )
c=(1,2,'abc') #c是一个元组
print(c)
test=set(c)
print(test)
print( )
d={'a':1,'b':2,'c':3} #d是一个字典
print(d)
test=set(d)
print(test)
注意:
python的元组,类似于c的数组
python的字典,类似于带节点的数据结构 数组
set(字典) 输出的只有字符串,没有节点
集合是无序的,可以通过 for 语句遍历的方式进行查询
test={1,2,'abc',567}
print(test)
for item in test: #使用 变量 item 遍历 集合 test
print(item)
集合可以通过 .add和 .remove来添加和去除数据
test={1,2,'abc',567}
print(test)
test.add(6)
print(test)
test.remove(1)
print(test)
集合的交集&、并集|、差集-
交集和并集不分先后,但差集区分
a={1,2,3,4}
b={3,4,5,6,7}
print(a&b) #a交b
print(b&a) #b交a
print()
print(a|b) #a并b
print(b|a)
print()
print(a-b) #a差b
print(b-a)
#交集和并集不分先后,但差集区分先后
print()
print(a.intersection(b))
print(a.union(b))
print(a.difference(b))
print(b.difference(a))
解题: 使用 num1和num2来记录班级人数 使用集合class1和class2来记录学生名称
num1=int(input("请输入班级1的学生数量:") ) #打印提示,并将数据储存到num1
print("班级1的学生数量为:{}".format(num1)) #输出验证
class1=set() #创建一个空集,命名为class1
#通过循环,控制输入次数
for i in range(0,num1):
name = input( "请输入班级1的学生姓名,第%d位:" %(i+1) )
class1.add(name)
如果只是一句,a=input() 是没有问题的;
但是,for循环中,for i range(0,num1) ’num1’ 需要明确界定数据类型,否则报错
这句话的报错是: ‘class2’ 不存在,‘name’ 字段只能填写到 ‘class1’ 中
如果不想写中文提示,可以直接用 input() ,但是很容易搞混淆,最好添上
如果input()中使用中文提示,不仅中文要用引号括起来,还要用 “%d” %() 格式
num1=int( input("请输入班级1的学生数量:") ) #打印提示,并将数据储存到num1
print("班级1的学生数量为:{}".format(num1)) #输出验证
class1=set() #创建一个空集,命名为class1
#通过循环,控制输入次数
for i in range(0,num1):
name = input( "请输入班级1的学生姓名,第%d位:" %(i+1) )
class1.add(name) #使用.add 将学生姓名添加到class1集合中
print(class1) #输出验证
num2=int( input("请输入班级2的学生数量:") )
print(num2) #输出验证
class2=set()
for i in range(0,num2):
name = input()
class2.add(name)
print(class2) #输出验证
简单输出
num1=int( input("请输入班级1的学生数量:") ) #打印提示,并将数据储存到num1
print("班级1的学生数量为:{}".format(num1)) #输出验证
class1=set() #创建一个空集,命名为class1
#通过循环,控制输入次数
for i in range(0,num1):
name = input( "请输入班级1的学生姓名,第%d位:" %(i+1) )
#正常是从0开始计数,i+1 从第一位开始显示
class1.add(name) #使用.add 将学生姓名添加到class1集合中
print(class1) #输出验证
num2=int( input("请输入班级2的学生数量:") )
print(num2) #输出验证
class2=set()
for i in range(0,num2):
name = input( "请输入班级2的学生姓名,第%d位:" %(i+1) )
class2.add(name)
print(class2) #输出验证
same= class1&class2 #求两者的交集,并赋值给 same
print("重名的同学为:")
print(same)
num1=int( input("请输入班级1的学生数量:") ) #打印提示,并将数据储存到num1
print("班级1的学生数量为:{}".format(num1)) #输出验证
class1=set() #创建一个空集,命名为class1
#通过循环,控制输入次数
for i in range(0,num1):
name = input( "请输入班级1的学生姓名,第%d位:" %(i+1) )
#正常是从0开始计数,i+1 从第一位开始显示
class1.add(name) #使用.add 将学生姓名添加到class1集合中
print(class1) #输出验证
num2=int( input("请输入班级2的学生数量:") )
print(num2) #输出验证
class2=set()
for i in range(0,num2):
name = input( "请输入班级2的学生姓名,第%d位:" %(i+1) )
class2.add(name)
print(class2) #输出验证
same= class1&class2 #求两者的交集,并赋值给 same
print("重名的同学为:")
print(same)
for name in same: #使用for循环将名字逐个打印出来
print(name)