一.python基础.-------2. 循环- 集合


'''  1.判断条件 boolean类型的表达式
while 判断条件:
     2.循环体
     避免死循环-->正规代码
'''
 while 循环
     第一种写法:
 n=1
 while True:
     print(n)
     n=n+1
    if n>10:
         break;  #停止当前循环

    第二种写法:
 n=1
 while n<=10:
     print(n)
     #n=n+1     #死循环 一直循环1

 练习一
 1.输出1-100的偶数和

 n=1
 sum=0
 while n<=100:
     if n%2==0:  #把0改为1就为奇数
         sum+=n
         n=n+1
 print(sum)

 2.请用户输入数字,求和,知道输出0退出

 while True:
     n= int(input("请输入一个数字:"))
     if n ==0:
         break
     sum+=n
 print(sum)

 3. 1=100的
    遇到3 和 5的倍数输出当前值 +是3 和 5 的倍数
    遇到5的倍数输出当前的值 +是5的倍数
    遇到3的倍数输出当前的值 +是3的倍数

 n=1;
 while n<=100:
     if n%3==0 and n%5==0:
         print(n," 是3 和 5的倍数 ")
     elif n%5==0:
         print(n, " 是5的倍数 ")
     elif n%3==0:
         print(n, " 是3的倍数 ")
     n = n + 1
 else:  当循环正常执行结束后,执行else的语句块
    print("循环结束,判断完毕!");


练习二

range()函数 生成数列
1.输出一行9个*
2.输出9行9个*

 nums=range(5)
 for i in range(9):        #几行
     for i in range(9):    #一行几个星星
         print("*",end="")
     print()

3.输出直角三角形

 for i in range(1,6):
     for j in range(6,i,-1):
         print("*",end="")
     print()

4.输出等腰三角形

 for n in range(1,9):
     for j in range(8,n,-1):
         print(" ",end=" ");
     for k in range(2*n-1):
         print("*",end=" ");
     print();

5.输出九九乘法表

  for i in range(1,10):
      for j in range(1,i):
          print(j,"*",i,"=",(j*i),end="\t")
      print()

6.输入菱形

 for i in range(1,9):
     for j in range(8,i-1,-1):
         print(" ",end=" ")
     for k in range(0,i*2-1):
         print('*',end=" ")
     print()
 for l in range(1,9):
     for m in range(l+1):
         print(" ",end=" ")
     for n in range(8*2,l*2+1,-1):
         print("*",end=" ")
     print()

 7.请用户输入成绩 统计各区间的人数
   超出1-100 重新输入 正确 询问是否继续

 a=b=c=d=0
 while True:
     num=int(input("请输入成绩:"))
     if num>=90 and num<=100:
         a+=1
     elif num>=80 and num<90:
         b+=1
     elif num>=60 and num<80:
         c+=1
     elif num>=0 and num<60:
         d+=1
     else:
         print("超出范围 请重新输入")
         continue#放回到循环条件判断的位置  必须在循环体中
     str=input("是否继续?y/n")
     if str.__eq__("n"):
         break
 print(">90:",a)

8.统计3个班级 中每个班级3个学生的成绩: 大于80的人数几个

 count=0
 for i in range(1,4):
     print("请输入第",i,"个班级学生成绩:")
     for j in range(1,4):
         score=int(input("请输入第"+str(j)+"个学生成绩"))
         if score<0:
             print("输入负数 进入下个班级")
             break
         if score<80:
             continue
         count+=1
 print("大于80的人数:",count)

================================================

集合

set:集合 是一个
无序 不重复 元素 的 集合 可变集合。
无序唯一
frozenset:不可变集合
基本功能包括:
关系测试和消除重复元素。

集合对象  还支持:
union(联合),
intersection(交集),
difference(差集)和
sysmmetric difference(对称差集)等数据运算

大括号或 set() 构造函数都可以用来创建集合
注意:想要创建空集合,必须使用set() 而不是{}
{}用于创建空字典; {}


集合的特性
回顾数学相关知识,集合有以下特性:
 1.无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。
 2.集合上可以定义序关系,定义了序关系后,元素之间就可以按照序关系排序。
   但就集合本身的特性而言,元素之间没有必然的序。
 3.互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。
 4.有时需要对同一元素出现多次的情形进行刻画,可以使用多重集,其中的元素允许出现多次。 
 5.确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,
   不允许有模棱两可的情况出现。

当然,Python 中的集合也具备这些特性:
无序性:
>>> s = set('Python')
>>> s
{'y', 'n', 'h', 'o', 'P', 't'}
>>>
>>> s[0]  # 不支持索引
...
TypeError: 'set' object does not support indexing
互异性
>>> s = set('Hello')
>>> s
{'e', 'H', 'l', 'o'}

确定性
>>> 'l' in s
True
>>>
>>> 'P' not in s
True

注意: 由于集合是无序的,所以索引没有任何意义。
也就是说,无法使用索引或切片访问或更改集合元素。

1.创建语法:

1. set1=set();   空
2. set1={数据}
3. set1=({数据})   #字典 将取key  key唯一
4. set1=([数据])
5. set1=((数据))
如下:
set1=set()
set2={'a',1,2.3,'b'}

print(type(set2))
print(type(set2))
print(set2)
set3=set({1:2,3:4})                 #第一种写法
set3=set((11,13,'6',12,14,-1))      #第二种写法
print(type(set3))
print(set3)


1. add(key) key不存在就添加 存在不添加
2. remove(key);存在删除 不存在抛异常 程序将停止运行
3. clear(); 清空
4. .pop();  随机删除一个  正整数中最小的 并返回
# a=a|b
5. a.update('1234'); #将字符串或集合中的数据 联合放到a集合中
 如下:
 set3.add(2)
 print(set3)
 set3.remove(3)
 print(set3)
 rand=set3.pop()
 print('随机删除了一个:',rand)
 set3.clear()
 print(set3)

 set3.update({22,33,44,-6})
 print(set3)



二.集合的创建演示
a={'peace','peace','rong','rong','nick'}
b={'nick','haoyu''rong','kangli'}
演示联合  只要出现过 一次 的全部提取 并返回一个 新 的集合
print(a|b)
如下:
a={'peace','peace','rong','rong','nick'}
b={'nick','haoyu','rong','kangli'}
print(a)
print(b)
c=a|b
print(type(c))
print(c)
#演变交  重复提取
d=a&b
print(d)
#  #演示差   以a为主去掉重复 剩下前一个 中数据
print(b-a)
#  #对称差集    不重复数据 ^  异或
print(a^b)

猜你喜欢

转载自blog.csdn.net/hwj990/article/details/80146948