Python初学者项目练习15--寻找最小连续9整除数
一、练习题目用户输入一个奇数程序需要找到一个最小的有连续9组成的数如 9999999999等这个数能够被用户输入的奇数整除。输出这个最小的数以及它除以用户输入的奇数的结果。二、代码1.问题版本代码如下xint(input(请输入一个奇数: ))n0i0whileiint(inf):nn9*10**iifn%x0:yn/xprint(f最小的数为{n}, 这个数除以输入奇数的结果{y})breakii1print(f最小的数为{n}, 这个数除以输入奇数的结果{y})问题1inf是一个字符串int(“inf”)试图把字符串 inf转成整数Python 的整数 不能表示无穷大所以直接抛出 ValueError问题2ii1 在whilie循环的外面2.问题版本代码如下xint(input(请输入一个奇数: ))n0i0whileifloat(inf):nn9*10**iifn%x0:yn// xprint(f最小的数为{n}, 这个数除以输入奇数的结果{y})breaki1改成float(‘inf’) 解决报错但是下面版本更好3.问题版本代码如下xint(input(请输入一个奇数: ))n0i0whileTrue:nn9*10**iifn%x0:yn/xprint(f最小的数为{n}, 这个数除以输入奇数的结果{y})breaki1存在问题比如遇到5这种找不到可以整除的情况没有返回值4.优化版本代码如下xint(input(请输入一个奇数: ))n0i0whilei10000:nn9*10**iifn%x0:yn/xprint(f最小的数为{n}, 这个数除以输入奇数的结果{y})breaki1else:print(未能找到满足条件的结果)else 是break 没有执行就执行else5.其他版本代码如下xint(input(请输入一个奇数: ))n1i0whilei10000:n_9int(9*n)ifn_9%x0:yn_9/xprint(f最小的数为{n_9}, 这个数除以输入奇数的结果{y})breaki1nn1else:print(未能找到满足条件的结果)主要看一下n_9 int(“9”*n)这种表达方式总结int()不能接受 “inf”while inum:ifbreakelse这种语句的使用学习这种表达方式“9” *3“999” 再转换成int型