专栏首页python3Python 练习——计算1-2+3-4

Python 练习——计算1-2+3-4

# 求1-99的所有数的和
count = 1
s = 0
while count < 100:
    s += count
    count += 1
print(s)

当都为正数时,即1+2+3+...+99,如上,很简单;

其实,计算正负相间的式子也很简单,只需要加上一个标记正负号的变量乘到计数器上即可。

count = 1
s = 0
sign = 1  # 用来标记正负号
while count < 100:
    s += sign * count
    sign = -sign  #每次执行累加后,把标记赋值为相反数
    count += 1
print(s)

用一个布尔型变量来记录执行加法还是减法,也能达到同样的效果(这里额外增加一个要求,就是剔除某个数后,保持正负相间的累加)

is_add = True  # 最开始0+1是加法,所以初值为True
count = 1
s = 0
while count < 100:
    if count != 88:  # 把想要剔除的数拒之门外,让计数器下去默默加1
        if is_add:
            s += count
            is_add = False  # 执行加法后,下一次是减法
        else:
            s -= count
            is_add = True  # 执行减法后,下一次是加法
    count += 1
print(s)

这样,得到的就是1-2+3-4...+87-89+90...+98-99的结果

另一种简单的思路,判断计数器的奇偶,奇数加,偶数减

s = 0
count = 1
while count <= 99:
    if count % 2 == 0:
        s -= count
    else:
        s += count
    count += 1
print(s)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python while语句

    py3study
  • while循环,逻辑语句.

    py3study
  • python实现静态变量

    之所以结果不相同,原因在于第6行赋值的时候,并没有把类变量count变为1,而是f1对象自己生成了一个变量count,并初始化为1。而此时f2.count指向的...

    py3study
  • 你是一直认为 count(1) 比 count(*) 效率高么?

    MySQL count(1) 真的比 count(*) 快么? 反正同事们都是这么说的,我也姑且觉得对吧,那么没有自己研究一下究竟?如果我告诉你他们一样,你信么...

    java思维导图
  • 好问题:count(1)、count(*)、count(列)有什么区别?

    当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!

    Java技术栈
  • Java自增自减运算符神坑笔试题

    mathor
  • MySQL count()函数及其优化count(1),count(*),count(字段)区别

    JavaEdge
  • 【Python】统计字符串中英文、空格、数字、标点个数

    题外话:今天打酱油的做了**数据挖掘工程师的在线笔试题,被打击了。 本文代码可在 这里 下载。 问题 在网上无意间看到这么一个题目:统计一个字符串中的中英文、空...

    Alan Lee
  • 执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?

    来源:blog.csdn.net/iFuMI/article/details/77920767

    好好学java
  • IRscope代码拆解一

    readLines()函数读入文本文件,结果好像是一个向量,文件中的每行是向量中的一个元素。

    用户7010445

扫码关注云+社区

领取腾讯云代金券