python 循环

简介: python 循环

这个世界并不是掌握在那些嘲笑者的手中,而恰恰掌握在能够经受得住嘲笑与批评,仍不断往前走的人手中


文章目录


1.输入一个整数n,输出从1到n的数字


2.请输入一个整数n,输出n!的值


3.请输入一个正整数n,计算m=1-2+3-4...+(-)n


4.字符串统计,输入一个字符串,输出数字字符的个数


5.字符分类统计,输入一个字符串,分别统计字母、数字、下划线、其他字符的统计结果


6.打印菱形


7.打印水仙花数


前言:


本文中的几道题都用了两种方法,代码自取即可


大家好,我是纪宁


今天我们用7道练习题来巩固python的循环部分,这是目前python基础的学习进度




关于for---in循环和while循环的强调


要注意的点:


for循环中,如果要对n个数进行操作,且要循环n次,当range 函数的第一个参数是1时,第二个参数必须是n+1,否则就不能对第n个数进行操作

while循环每循环一次要逐渐逼近循环终止条件

1.输入一个整数n,输出从1到n的数字

 此题不是很难,直接用for---in或while控制循环次数或者控制条件即可


#输出从1到n的数字

#for----in

n=int(input("请输入一个整数n:"))

for i in range(1,n+1,1):

   print(i)

#while

n=int(input("请输入一个整数:"))

i=1

while i<=n:

   print(i)

   i+=1

2.请输入一个整数n,输出n!的值

 此题要在循环外面定义一个变量,且初值必须赋为1,因为后面要对他进行自乘运算,用来存放阶乘n的值


#请输入一个整数n,输出n!的值

#while

n=int(input("请输入一个整数:"))

ret=1

i=1

while i<=n:

   ret*=i

   i+=1

print(ret)

#for----in

n=int(input("请输入一个整数:"))

ret=1

for i in range(1,n+1,1):

   ret*=i

print(ret)


3.请输入一个正整数n,计算m=1-2+3-4...+(-)n

 此题的重点是找规律:


 奇数项为正,偶数项为负,且绝对值每次都要加1

 那么只需要在每次往sum上面加的时候,判断一下奇偶即可:是偶数就乘  -1

#输入一个正整数n,计算m=1-2+3-4...+(-)n

#while

n=int(input("请输入一个整数n:"))

i=1

sum=0

while i<=n:

   if i%2!=0:

       sum+=i

   else:

       sum+=(-i)

   i+=1

print(sum)

#for----in

#

n=int(input("请输入一个整数n:"))

sum=0

for i in range(1,n+1,1):

   if i%2!=0:

       sum+=i

   else:

       sum+=(-i)

print(sum)


4.字符串统计,输入一个字符串,输出数字字符的个数

 此题在使用for循环时,只需要用i对字符串进行索引即可(不能用字符串名.[下标]),在while循环中正常使用字符串名.[下标]来索引每个字符


 还有一个注意点是,在python3中字符是不能直接用ASCII码与数字进行比较的,只能字符之间比较大小,如下面的代码在判断是否为数字时的语句


#字符串统计,输入一个字符串,输出数字字符的个数

#for----in

Str_=input("请输入一串字符:")

l=len(Str_)

count=0

for i in Str_:

   if i<='9' and i>='0':

       count+=1

print(count)

#while

Str_=input("请输入一串字符:")

l=len(Str_)

i=0

count=0

while i<l:

   if(Str_[i]<='9' and Str_[i]>='0'):

       count+=1

   i+=1

print(count)


5.字符分类统计,输入一个字符串,分别统计字母、数字、下划线、其他字符的统计结果

 这个题与第四题大同小异:只需要注意不能用处ASCII码数字进行判断即可


#打印字符分类

#while

Str_=input("请输入一串字符:")

l=len(Str_)

count_cha=0 #字母

count_dig=0 #数字

count_underline=0 #下划线

count_others=0 #其他字符

i=0

while i<l:

   if Str_[i]<='z'and Str_[i]>='a':

       count_cha+=1

   elif Str_[i] <='9' and Str_[i] >= '0':

       count_dig+=1

   elif Str_[i]=='_':

       count_underline+=1

   else:

       count_others+=1

   i+=1

print("这串字符串中字母的个数是",count_cha)

print("这串字符串中数字的个数是",count_dig)

print("这串字符串中下划线的个数是",count_underline)

print("这串字符串中其他字符的个数是",count_others)

#for---in

Str_=input("请输入一串字符:")

count_cha=0 #字母

count_dig=0 #数字

count_underline=0 #下划线

count_others=0 #其他字符

for i in Str_:

   if i <= 'z' and i >= 'a':

       count_cha += 1

   elif i <= '9' and i >= '0':

       count_dig += 1

   elif i == '_':

       count_underline += 1

   else:

       count_others += 1

print("这串字符串中字母的个数是",count_cha)

print("这串字符串中数字的个数是",count_dig)

print("这串字符串中下划线的个数是",count_underline)

print("这串字符串中其他字符的个数是",count_others)


6.打印菱形

 打印菱形一直是我们学习一门语言必须要经历的一步,熟练掌握这种菱形的打印可以让我们对这门语言的语法和基础用法更加熟悉


 打印菱形最重要的一点就是找到规律:


先打印上半部分、在打印下半部分

每一部分先打印空格,再打印*号

上半部分的打印和下半部分的打印思维是相反的

稍微难一点,不过可以更好的锻炼我们的思维


#打印菱形

#纯while

n=int(input("请输入想打印的菱形的行数(奇数)"))

z=n//2+1

#打印上半部分

i=0

while i<z:  #打印上半部分

   j=0

   while j<z-i-1:    #打印上面空格

       print(' ' ,end='')

       j+=1

   x=0

   while x<2*i+1:    #打印上面的*

       print('*',end='')

       x+=1

   print()

   i+=1

#打印下半部分

i=0

while i<z-1:

   h=0

   while h<i+1:

       print(' ',end='')

       h+=1

   t=0

   while t<(z-i-1)*2-1:

       print('*',end='')

       t+=1

   print()

   i+=1

#for---in+while

n=int(input("请输入想打印的菱形的行数(奇数)"))

z=n//2+1

#打印上半部分

for i in range(0,z,1):

   j = 0

   while j<z-i-1:    #打印上面空格

       print(' ' ,end='')

       j+=1

   x=0

   while x<2*i+1:    #打印上面的*

       print('*',end='')

       x+=1

   print()

for i in range(0,z,1):

   h = 0

   while h<i+1:

       print(' ',end='')

       h+=1

   t=0

   while t<(z-i-1)*2-1:

       print('*',end='')

       t+=1

   print()


7.打印水仙花数

 “水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1^3+5^3+3^3=153,则153是一个“水仙花数”


 打印水仙花数最重要的是找到它的每一位,并每次循环都进行一次判断,如果符合水仙花数的规律,就进行打印


 乘方符号  **


#打印水仙花数

#while+for---in

i=0

wa_fl=0

z=0

for i in range(100,1000,1):

   z=i

   wa_fl=0

   while z>0:

       wa_fl+=((z%10)**3)

       z//=10

   if wa_fl==i:

       print(i)

#纯while

i=100

while i<=999:

   ge_=i%10  #找到个位

   shi_=i//10%10  #找到十位

   bai_=i//100

   if ge_**3+shi_**3+bai_**3==i:

       print(i)

   i+=1

相关文章
|
5月前
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。
61 1
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
|
5月前
|
Python
揭秘Python编程核心:一篇文章带你深入掌握for循环与while循环的奥秘!
【8月更文挑战第21天】Python中的循环结构——for循环与while循环,是编程的基础。for循环擅长遍历序列或集合中的元素,如列表或字符串;而while循环则在未知循环次数时特别有用,基于某个条件持续执行。本文通过实例展示两种循环的应用场景,比如用for循环计算数字平方和用while循环计算阶乘。此外,还通过案例分析比较了两者在处理用户输入任务时的不同优势,强调了根据实际需求选择合适循环的重要性。
59 0
|
2月前
|
开发工具 Python
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
30 2
|
2月前
|
Python
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
35 2
|
2月前
|
Python
Python 中,循环判断
Python 中,循环判断
55 1
|
2月前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
40 4
|
3月前
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
76 5
|
3月前
|
Python
Python 循环语句的高级应用与深度探索
本文深入探讨了Python中循环语句的高级应用,包括`for`循环遍历字典获取键值、同步遍历多个序列,以及`while`循环结合条件判断和异常处理。通过嵌套循环实现了矩阵乘法,并介绍了如何优化循环以提升程序性能。示例代码展示了这些技术的实际应用。
58 15
|
3月前
|
数据安全/隐私保护 Python
Python循环语句
【10月更文挑战第7天】
|
4月前
|
Python
Python 中如何循环某一特定列的所有行数据
Python 中如何循环某一特定列的所有行数据
42 2