while循环和数列

本文探讨了Python编程中的while循环,展示了如何输出十次循环、计算1-100的偶数和、奇数和,以及实现用户输入数字求和等功能。同时,文章也提到了for循环、range()函数的使用,以及break和continue语句在控制循环流程中的作用。还讲解了列表的操作,并给出了练习题目,如输出菱形、寻找质数和斐波那契序列等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

while循环和数列


whlie循环

  • 输出十次循环

n=1;
while n<11:
print(“hello world”)
n+=1;

  • 输出1-100的偶数和、奇数和
n=1sum=0,jishu=0
while n<=100:
    if n%2==0:
        sum+=n;
    else:
        jishu+=n;
    n+=1
print("输出1-100的偶数和是:"+str(sum));
print("输出1-100的奇数和是:" + str(jishu));
  • 请用户输入数字,求1-输入的数字的和,数字直到0退出循环
n=int(input ("请输入数字:"));sum=0;
while n>0:
    sum+=n;
    n-=1
print(sum);

输出1-100中3的倍数、5的倍数及3和5的公倍数

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

for循环

  • range()函数,会生成有序数列
num=range(5);#一个参数 从0开始  到5不包含自己
print(num);
for n in range(5,9):#二个参数 从5开始 到9不包含自己
    print(n);
for n in range(5,55,5):#三个参数 从5开始 到55不包含自己 5为步数
   print(n);
  • 嵌套循环
for i in range(5):#打印五行*
    print("*");
for i in range(5):#打印五行五个*
    for j in range(5):
        print("*",end=" ");
    print();
for i in range(5):#打印五行五个*方法2
    n=0;
    while n<5:
        print("*", end=" ");
        n+=1;
    print();
  • 输出直角三角形
for i in range(1,6):
    for j in range(i):
        print("*",end="");
    print();
  • 九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print("{0} * {1}= {2}".format(j,i,j*i),end="\t");
    print();
  • 等腰三角形
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();

break,continue

  • 请用户输入0-100间的成绩,统计各区间的人数,超出范围内提示重新输入,输入正确提示是否继续
a,b,c,d=0,0,0,0                            #初始化各个区间的人数
while(True):
    score=int(input('请输入成绩:'))
    if score>=90 and score<=100:        #区间:[90,100]
        a+=1
    elif score>=80 and score<=89:        #区间:[60,90)
        b+=1
    elif score>=60 and score<79:          #区间:(0,60)
        c+=1
    elif score >=0 and score < 60:          # 区间:(0,60)
        d+=1
    else:
        print('Error,请重新输入!')
        continue;               #结束本次循环,进入下一次循环,即接着重新输入成绩
    inp=input('是否继续:(y/n)')
    if inp=='n':
        break;                  #结束并跳出循环,成绩录入结束,也不会执行else语句块了
else:
    print('成绩录入完成!');
print('优秀线{0} 良好线{1} 及格{2} 不及格{3}'.format(a,b,c,d));
  • 统计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;
print("大于80 的学生人数:"+str(count));

列表

list1=['baidu','huawei','ali',1998,False,13.3];#创建列表,用逗号分割
print(list1[0]);#访问列表内的数据,用过下标获取
print(list1[:]);#访问所有
print(list1[:2]);#访问范围从下标0开始到下标2结束
print(list1[1:2]);#访问范围从下标1开始到下标2结束
print(list1[1:5:2]);#访问范围从下标0开始到下标5结束,步数为2
  • 列表的增、删、改、查(insert,delete,update,query)
#增(.append/.insert/.extend)
list1=['baidu','huawei','ali'];
list2=['华腾','李彦宏','任正非','马云','东子']
list1.append('append');#一个参数,默认在尾部添加
print(list1);
list2.insert(0,'insert');#两个参数,第一个参数代表下标,第二个参数代表添加的参数,需用引号引起来
print(list2);
list1.extend(list2);
print(list1);
list1[0]='aabb';#在下标0处添加新的参数
print(list1);
#两个列表进行相加
list3=list1+list2;
print(list3);
print(list1+list2);
#删(del)
# list1.pop():把最后一个删除,也可以指定删除的下标
# list1.remove("")删除括号中的内容,但只删除一次
list1=[1,3,5,7,9];

print("没有删除之前:"+str(list1));
del list1[0];#删除下标指定的参数
print("删除之后:"+str(list1));

list1.pop(2);
print("pop(2)下标 删除之后:"+str(list1));
list1.pop(2);
print("pop(2)下标 删除之后:"+str(list1));

list1.remove(5);#删除括号中的内容,但只删除一次
print("remove(5) 删除之后:"+str(list1));

小练习

  • 输出菱形
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()
  • 求1-100以内的质数
a=[];
for i in range(1,101):
        n=0
        for j in range(1,i+1):
           if(i%j==0):
               n+=1
               if(n>=3):
                   break
        if(n<=2):
            a.append(i)
print(a)
  • 斐波那切序列:1,1,2,3,5,8,13,21…
i,j=1,1
while i<100:
    print(i, end=" ")
    i,j=j,i+j;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值