教女朋友学 python——加减数学竖式 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

教女朋友学 python——加减数学竖式

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:34

女朋友的编程作业,适合零基础的同学。

题目

在这里插入图片描述

思路

运算是简单的数学竖式,计算并没有困难,题目考察点在于python的格式化输出。
python中的格式化输出主要使用format方法。

实现代码(固定长度)

print('请输入两个整数:') ## 输出
a = int(input()) ## 输入
b = int(input()) ## 输入
while(1):
    print('请输入两个整数的运算方式(+或-):') ## 输出
    y = input() ## 输入
    if y=='+':
        c = a+b
    else:
        c = a-b
    break
print('{:>10}'.format(a))#固定长度是10
print('{:<}'.format(y),'{:>8}'.format(b))
print('{:->11s}'.format(''))
print('{:>10}'.format(c))

format 用法

格式化字符串的函数 str.format()str是要出的字符串,format函数可以将str中指定的{}部分替换成我们指定的内容。

基本使用示例如下(更多使用方式可参考菜鸟教程):

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'

本题中会用到format函数中的对齐功能:
{:>10d}表示 右对齐 (默认, 宽度为10,空格补齐)
其中
:后面接对齐格式
>表示右对齐
10表示对齐的长度
d表示十进制数字

相同长度的-补齐
{:->11s}中符号:后接-表示使用-填充(没有接其他符号表示用空格补齐),s表示字符串
(更多使用方式可参考菜鸟教程)

动态对齐长度

上述直接使用format函数格式化对齐的方式只能设定固定的对齐长度10,就是无论数字是几位,最终都对齐为左边开始向右数第十位。如果数字很大超过十位,则会报错。如果开始就把对齐的固定长度设置很大则表达式很不美观。
则需要修改对齐方式,使得对齐的长度随着输入数字的长度动态调整。

这里用到了python的另一种格式化方式%

思路

对齐需要使用format中的动态补齐,上面格式化代码'{:>10}'10的部分只能是数字,不能加变量,所以考虑在格式化代码中套用格式化功能,将'{:>10}'再次格式化用变量代替10

动态长度实现代码

print('请输入两个整数:') ## 输出
a = int(input()) ## 输入
b = int(input()) ## 输入
while(1):
    print('请输入两个整数的运算方式(+或-):') ## 输出
    y = input() ## 输入
    if y=='+':
        c = a+b
    else:
        c = a-b
    break
l=max(len(str(a)),len(str(b)))+5#l为我们指定的动态长度,这里是比最长输入数字的长度长5个字符
print(('{:>%s}'%(l)).format(a))
print(y+('{:>%s}'%(l-1)).format(b))
print(('{:->%s}'%(l)).format(''))
print(('{:>%s}'%(l)).format(c))

套用%讲解

%用法与format类似(这里也可以直接用format代替)

>>>"hello%s"%("world")   
'hello world'

l=10时,上方代码中'{:>%s}'%(l)相当于'{:>10},这时再用format函数就与第一个代码相同了

相关案例查看更多