''' 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)