开发者学堂课程【Python 开发基础入门:Python 入门必备-循环习题和 else 子句】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/556/detail/7653
Python 入门必备-循环习题和 else 子句
目录:
一、练习
二、循环 else 子句
一、练习
分析概论:
1. 迭代的思想是无法写入到过程中,应当知晓思想的过程,同时利用初中所学可以写出,但这并非正确结果,这是学习的一个难点,是不会把学习思想转化为程序逻辑。这也是其将展开训练的一个点。
2.对于下面这一道题。对于题目中的所问,应当学会拆题的思想, 将复杂的业务问题拆成许多个小块。然后每一个逐步攻克。
3.对于业务而言,这是非常复杂的。拆成每一块,都需要进行去攻坚,其中包含一些复杂的问题。应当如何正确使用技术。首先,应当抽丝剥茧。用所知道的知识去攻克,对于部分的难点,应当慎重。
4.则下题就相当于一个业务。将题干分为两大部分,首先应当判断。题目中所给出的数,然后依次进行迭代,以及项目。同时后问可以和
前一问所问不同,现已经看出。
5.所给数字12345。思考能否将12345打印出来。将其解答出来,与前面一个问题进行结合,即可回答问题。同时,程序存在多种写法,先看程序所在方式优点。
例题:
给定一个不超过5位的正整数,判定该数的位数,依次打印出个位,十位,百位。千位。万位的数字
val = input(
‘
>>>
’
)
val = int(val)
print(val)
ifval>= 1000: #折半
if val> =10000:
num=5:
else:
num=4
else:
if val> =100:
num= 3
elifval >= 10:
num=2
else:
num=1
print(num)
c=val
(所输入的值转化为一个数字)
for i in range(num):
n=c1/10 :
print(c - n*10)
c=n #如果打印顺序是从万位到个位.如何实现?
插入:多给予变量引用54321,5432仅有一份,多一个变量来记录。做一次引用计数,所产生代价很小。可以忽略不计。若直接代入,则原本数据会丢失。所以应当加入一份。要一直记录所在值,以防后题目中所需。
假设输入为54321
第一-趟: 54321 // 10= 5432
54321 - 5432*10= 1
(思考:能否进入第二趟?)如下:
第二趟: 5432// 10= 543
5432 - 543*10= 2
依次类推
例:number=int(input("Input a number>>>"))
number*= 10
while (number//10) != 0:
number //= 10
print(number%10)
假设输入值为54321。带入到其中,则变为543210
即如下:
第一趟
54321! =0
54321 %10 =>1
第
2趟5432! =0
number = 543211/10
5432 %10 =>2
例:
num = input("num s:')
numV = len(num)
print( numV)
num = int(num)
for i in range(numV):
print(num % 10)
num = num//10
第一趟:
5432 %10=>1
543
例:
a=input('Please enter a number: ')
b=int(a)
cnt=O
for i in range(1,len(a)+1):
print(b%10)
b=b//10
cnt+=1
print(cnt)
forcin"54321"
例子:
给定一 个不超过5位的正整数,判断该数的位数,依次从万位打印到个位的数字
val = input(‘>>>’)
val = int(val)
print(val)
fval>= 1000: #折半
if val> = 10000:
num=5
else:
num=4
pre=5
else:
if val>=100:
num=3
elifval>= 10
num=2
else:
num=1
print(num)
pre=0
for i in range(num,0, -1):
cur = vaÍ//(10*(i-1))
print(cur - pre*10)
pre = cur
假设输入为
54321
第一趟:
cur= 54321 // 10000 = 5
打印5
-0
pre=5
第二趟:
cur= 54321 // 10000= 54
打印5
4-5*10
=
4
pre
=54
第三趟:
cur= 54321 // 100= 543
打印5
43-54*10
=
3
pre
=
543
依次类推。
例子:
#给定一个不超过5位的正整数,判断该数的位数,依次打印万位,千位,百位,十位,个位的数字
number=int(input( "Input a number>>>"))
if number > 1000:
if (number > 9999) :
div = 10000else :
div = 1000
else:
if (number > 100):
div = 100
elif (number > 10) :div = 10
else:
I
div = 1
while div !=0: #54321”
print ( number//div)
(
number %= div
)
div//=10
把不需要的数据舍弃。将需要的数据代入,再次重复循环。
例:
num= int(input())
lnum = len (str (num) )
c=num
for y in range ( lnum) :
m
=
c//(10**( lnum-y-1))
print (m)
c -= 10**( lnum-y-1)*m
当对数据类型掌握越来越多。方式的灵活性更加多样。同样数据验证是必须解决的问题,输入是否合法,需慎重考虑。
二.循环 else 子句
if 中存在 else 子句,其他语言中没有 else 子句,在 Python 语言中,存在大量else子句。
语法:
while condition:
else: block
for element in iteratable:
block
else:
block
由前部分可以看出,此为while循环,存在else。For循环下方存在与上方同级。但是前四行属于While,后方属于for。
如果循环正常的执行结束,就执行else子句;如果使用break终止,else子句不会执行。
例子:
for i in range (5) :
print (i)----i
为1
.2.3.4.
if i >
3
break
else :
print ( 'ok ')
当输入为4时,先行打印,随后进入判断,若结果不想输出为四,则添加条件——print(i)[break]下方,则结果处于不正常推出。
若更改为continue:
For i in [ ]:
If i > 3:
Continue
print ( i)
else :
print ( 'ok')
0
1
2
3
Ok
若循环正常结束,没有任何东西可以取出。则被迭代,若没有元素,可以拿出。同样不为 break。则执行 else。
若循环并非被强行 break,则为正常结束,若为 return。就无法看到 else。
目前所学阶段,若循环增加 else。并非强行 break 则正常。是否使用 else 子句看个人需求。
Python 语言认为没有必要使用if。若不使用 else,则在后方需写上 if 语句。Python 语言提供很好的语法功能。可以为其减轻负担。写大量的 Python语言,则使用 Python 语言的语法。
练习:
1.打印一个边长为n的正方形
——与打印的行宽有关,假如提供为4,则建议用*号代替。
2.求100内所有奇数的和( 2500 )
3.判断学生成绩,成绩等级A~E。其中,90分以上为A,80~89分为B; , 70~79分为C,60~69分为D,60分以下为E’
4.求1到5阶乘之和
5.给一个数,判断它是否是素数(质数)
6.质数:一个大于1的自然数只能被1和它本身 整除