20210609 py判断五字回文(强化循环判断)
20210609 start
今日目标
其他方法解决回文练习——比如序列法? a[::-1]
完成阶段练习
高级数据结构——梳理归类,方便记忆
break continue 难度还需加深理解
写入文档 后续
案例:判断一个数是否为5位回文数,如果不是5位数,需重新输入数。
# 思路20210609
如果有 go to loop语法也行,如果不是5位数,可以再从头开始去做判断。
——不过目前忘了 go to loop怎么做了
我今天的思路是——只要一直没有输入对,就一直执行,如何判断是不是5位数,可以根据len()长度,但是发现int没有长度,str可以测量长度,所以先测量input输入内容长度,再转为int型进行地板除和取余
具体实现代码——
while True:
number = input("请输入一个五位数:")
if len(number)==5:
number = int(number) # int型是没有长度的,str字符串型,才有长度,可以用len(num)
g = number % 10
s = number // 10 % 10
b = number // 100 % 10
q = number // 1000 % 10
w = number // 10000
# 请你补全以下四行代码
if g==w and s==q:
print('yes')
break
else:
print('no')
参考答案思路
5位数就是在【10000,99999】数字区间,故判断input数值后int,是否在区间内
?不知道两种思路对内存的占用率是否有差异,哪种更优?
我觉得我判断len的方法更优,因为简单,需要做比较的少,数字比较,感觉会更耗内存一些。
案例——猜数字游戏,给一个区间,猜正确值,逐渐缩小范围
# 思路20210609
# 换边-拿guess值换low或者high边界,逐步缩小范围
num=input('plz input true num\n')
low=input('plz low\n')
high=input('plz high\n')
#print('from %d to %d',low,high) 已经忘了简单输出怎么输出了
print('from {} to {}'.format(low,high)) #只记得format了
c=0
while c<5:
guess=input('guess,plz\n')
if guess==num:
print('right!')
break
elif guess>num: #很神奇 有一会儿 guess>num 就没有执行,重新输入才好
print('{}比正确值{}大,最大值换成guess了'.format(guess,num))
high=guess
print('from {} to {}'.format(low,high))
else:
low=guess
print('from {} to {}'.format(low,high))
c=c+1
if c==5:
print('5次都错咯')
收获
int型是没有长度的,str字符串型,才有长度,可以用len(num)
20210609 end
今日目标
其他方法解决回文练习——比如序列法? a[::-1]
完成阶段练习——今天又完成1个阶段练习+1个循环练习,差一个99乘法表没开始做
高级数据结构——梳理归类,方便记忆
break continue 难度还需加深理解——今天又用到了break——go to loop 不记得了
写入文档 后续
接下来
9*9乘法表
高级数据结构
print简单语法?
收获
int没长度,不能用len,str可以
感想
今天有学生和学院建议开始py和数据库的课
我要好好学习,学以致用!赶快能够开展实战!
B站上听了一个计算机与经济双博士的课,觉得能系统地把知识讲出来真棒
我word 理解节——制作页眉页码部分 也有系统性了,感觉自己棒棒哒!