python基础第三课 循环 列表

循环(while循环、for循环)

 
#格式    while 判断条件:
#       		循环体
#练习1、输出1-100的偶数和
n=1;oushu=0;jishu=0
while n<=100:
    if n%2==0:
        oushu+=n
    else:
        jishu+=n
    n += 1
print("1-100偶数和:{0}".format(oushu))
print("1-100奇数和:{0}".format(jishu))

#练习2、请用户输入数字,求和,直到输出0退出。
sum=0
num=int(input("请输入数字:"))
while num>0:
    sum+=num;
    num -= 1;
print("和是:{0}".format(sum))

# 练习31-100# 遇到3  5的倍数输出当前值是3  5的倍数
# 遇到5的倍数输出当前值是5的倍数。
# 遇到3的倍数输出当前值是3的倍数
n=1
while n<100:
    if n%3==0 and n%5==0:
        print("{0}35的倍数".format(n))
    elif n%3==0:
        print("{0}3的倍数".format(n))
    elif n%5==0:
        print("{0}5的倍数".format(n))
    n+=1
else:#while … else 在条件语句为 false 时执行 else 的语句块
    print("循环结束,判断完毕")

# for循环
# 1 range()函数:生成有序数列
#range(5): 一个参数 从0开始到5  不包含自己
# range(5,9):二个参数 从5开始到9  不包含自己
# range(5, 55, 5) :三个参数 从5开始到55 不包含自己,第3个参数是迭代部分,步长

# 格式:for 迭代变量 in range(1,X)
n=range(5);
print(n)
for i in range(5):
    print(i)

# 三个参数
for i in range(5,90,5):
    print(i)

#参数可为负数
for i in range(1,-20,-2):
    print(i)

# 2for循环
# 格式:for 迭代变量 in 列表/字典/元组
#         循环体
# for ...else:如果for循环中以break结束,则不进入else, 否则当for循环自己结束时进入else
# 例子
for i in range(1,-20,-2):
    print(i)
else:
    print("正常结束")

# 嵌套循环/双重循环
# 输出五行1*
for i in range(1,6):
    print("*")
# 输出五行5*:for嵌套for循环
for i in range(1,6):
    for j in range(1,6):
        print("*",end=" ")
    print()
# while嵌套for循环
i=0;
while i<5:
    for j in range(1,6):
        print("*",end=" ")
    print();
    i+=1;
# for嵌套while循环
for i in range(1,6):
    j=0;
    while j<5:
        print("*",end=" ")
        j+=1;
    print()

#练习2、输出一个直角三角形
for i in range(1,6):
    for j in range(i):
        print("*",end=" ");
    print();

# 练习3、输出九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        # print(str(j)+"*"+str(i)+"="+str(j*i),end="\t")
        print("{0}*{1}={2}".format(j,i,j*i),end="\t")
    print()

#3、循环体中的 break  continue

'''练习、请用户输入成绩统计各区间的人数
超出0 - 100重新输入正确询问是否继续'''

a,b,c,d,n=0,0,0,0,1
# while True:
while n<6:
    score=int(input("请第{0}个用户输入成绩".format(n)));
    if score>=90 and score<=100:
        a+=1;
    elif score<90 and score>=70:
        b+=1;
    elif score<=70 and score>=60:
        c+=1;
    elif score<60 and score>0:
        d+=1;

    else:
        print("输入错误,停止输入")
        # continue
        break   #两者的区别
    # xunwen=input("是否继续?y or n")
    # if xunwen=="n":
    #     break;
    n+=1;
else:
    print("什么时候执行啊?")
print(a,b,c,d)

# 练习2、打印等腰三角形
row=6;
for i in range(1,row):
    for j in range(row,i,-1):
        print(" ",end=" ")
    for k in range(i*2-1):
        print("*",end=" ")
    print()

# 练习3、双重循环中break continue
#统计3个班级 中每个班级3个学生的成绩: 大于80的人数几个
count=0
for i in range(1,4):
    print("{0}个班级的学生成绩".format(i));
    for j in range(1,4):
        print("{0}个学生的成绩".format(j));
        score=int(input());
        if score<80:
            continue;
        count+=1;
        # if score>80:
        #     count+=1;
        # elif score<0:
        #     print("输入错误,停止本班")
        #     break;
print('大于 80分 人数是{0}'.format(count))
# continue 结束本次循环,继续下一次循环
# break 结束内层循环,执行外层代码



#列表:处理多个数据
# 1.创建列表:方括号括起来的,不同的数据项由逗号隔开,数据项可以是任意数据类型
# 2.列表切片:同字符串切片
list1=['小明','xiaohua',20,80,"name","age"]
print(list1[1])   #输出第二位
print(list1[-1])  #最后一位
print(list1[:])   #全部
print(list1[:2])   #前两位:包含前一项,不包含后一项“2’
print(list1[1:5:1])
print(list1[-1:-4:-1])
print(list1[::])   #全部
print(list1[::-1])   #倒序显示

# 3.增删改查(动态数组):
#  list.append("")尾部追加   insert(位置下标,“”)  list+list2 与或非  extent(list)
list1.append('python')
print(list1)
list1.insert(0,'html')  #在下标0处插入,0和后面位置的项后挪一位,
print(list1)
list11=[1,3,5,7,9]
list22=[2,4,6,8,10]
# print(list11+list22)
# # print(list11-list22)  #不能相减
# print(str(list11) and str(list22))
# print(list11 or list22)
list11.extend(list22)
print(list11)

#  list[i]="修改后字符"
#  del list1[2]
#  list1.pop():把最后一个删除,也可以指定删除的下标
#  list1.remove("")删除括号中的内容,但只删除一次
lista=[1,2,3,4,5,6,7,8,9]
del lista[0]  #删除了第一位
print(lista)
del lista    #删除了lista列表
listb=[1,2,3,4,5,6,7,8,9]
listb.pop()    #删除尾部数据
print(listb)
listb.pop(0)  #下标是第一位,删除第一位1
print(listb)
listb.remove(5)  #删除内容为5的一项
print(listb)


# 作业:
# 1 菱形
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()

#     方法2
for i in range(1,10,2):
    print(("*"*i).center(20," "))
for j in range(7,0,-2):
    print(("*"*j).center(20," "))

#  2 1-100内的所有质数:除了1和本身外,不能被小于本身的数整除,就是素数;除了1,从2开始
i=2;a=[]
for i in range(2,101):
    j=2;
    for j in range(2,i):
        if i%j==0:
            break
    else:
        a.append(i)
print(a)

# 3 斐波那切序列:1,1,2,3,5,8,13,21....特点是第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和
i,j=0,1
while i<100:
    print(i, end=" ")
    i,j=j,i+j;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值