""" 记录下自己自学python和练习写的代码,等以后进阶后,再回来看一下曾经自己写的代码有多蠢 Python入门练习题026:字符串写入的行数 把字符串S字符写入行中,每行最大宽度为100,如果往后再写一个字符,则写入下一行 每个字符的宽度是由一个给定数组widths决定的,widths[0]是a的宽度, widths[1]是b的宽度。。。 S="abcdefghijklmnopqrstuvwxyz" widths=[10,10,10,10,10,10,10,...,10] 思路: 1. 按照题目的意思,每个字符的宽度都是10,也就是说S字符串有多长,列表widths就有多少个元素10. 2. 每行100的宽度,所以只要算出S的总宽度, 再除以100就是答案了。 3. 这个结果很可能是浮点数,只要出现小数整数部份就要向上取整,而小数部份*100就是占用最后一行的宽度值。 4. 这个题果然很简单,给自己增加点难度:如果每个字符的宽度不等长,比如说汉字是2,字母和数字是1 """ #对于原题,按我的思路,代码如下: #S="abcdefghijklmnopqrstuvwxyz" S="abcdefghijklm" widths=[10]*len(S) i=sum(widths)/100 if i>int(i): k=int(i)+1 else: k=int(i) j=round((i-int(i))*100) print("最少需要的行数:",k) #用round函数是四舍五入,遇到结果是2.1,输出为2,而实际应该是3 print("最后一行用去的宽度为:",
Python入门练习题026:字符串写入的行数
最新推荐文章于 2025-05-20 18:44:14 发布