python如何从while循环中取值打印?

 python可以打印出奇数。但是,输出不是我想要的。它应该看起来像 1+3+5+7 = 16 但我不能把它变成一行。

 python如何从 while 循环中提取值,因为我的方法只给出最新的奇数 7,而 1,3 和 5 无法取出。

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-python">num = <span style="color:var(--highlight-literal)">int</span>(<span style="color:var(--highlight-literal)">input</span>(<span style="color:var(--highlight-variable)">"Insert a postive integer:"</span>)) <span style="color:var(--highlight-comment)">#4</span>
oddNum = <span style="color:var(--highlight-namespace)">1</span>
total = <span style="color:var(--highlight-namespace)">0</span>
count = <span style="color:var(--highlight-namespace)">1</span>
<span style="color:var(--highlight-keyword)">while</span> count <= num:
    odd = (<span style="color:var(--highlight-literal)">str</span>(oddNum))
    <span style="color:var(--highlight-literal)">print</span> (odd)
    total = total + oddNum
    oddNum = oddNum + <span style="color:var(--highlight-namespace)">2</span>
    count += <span style="color:var(--highlight-namespace)">1</span>

<span style="color:var(--highlight-literal)">print</span> (odd + <span style="color:var(--highlight-variable)">"="</span> + <span style="color:var(--highlight-literal)">str</span>(total)) 
<span style="color:var(--highlight-comment)">#output will be:</span>
<span style="color:var(--highlight-variable)">'''
1
3
5
7
7=16
but it should look like 1+3+5+7=16
'''</span></code></span></span>

解答的一种方法是使用:

range()生成奇数列表的方法

.join()将奇数拼接在一起的方法(例如 1+3+5+7)

f-strings打印赔率连同total = sum(odd_nums)

代码:

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-python">num = <span style="color:var(--highlight-literal)">int</span>(<span style="color:var(--highlight-literal)">input</span>(<span style="color:var(--highlight-variable)">"Insert a postive integer:"</span>)) <span style="color:var(--highlight-comment)">#4</span>
odd_nums = <span style="color:var(--highlight-literal)">range</span>(<span style="color:var(--highlight-namespace)">1</span>, num * <span style="color:var(--highlight-namespace)">2</span>, <span style="color:var(--highlight-namespace)">2</span>)
sum_nums = <span style="color:var(--highlight-variable)">"+"</span>.join(<span style="color:var(--highlight-literal)">map</span>(<span style="color:var(--highlight-literal)">str</span>, odd_nums))
<span style="color:var(--highlight-literal)">print</span>(<span style="color:var(--highlight-variable)">f"<span style="color:var(--highlight-color)">{sum_nums}</span>=<span style="color:var(--highlight-color)">{<span style="color:var(--highlight-literal)">sum</span>(odd_nums)}</span>"</span>)</code></span></span>

输出:

1+3+5+7=16

笔记:

相同但使用两行代码:

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-python">num = <span style="color:var(--highlight-literal)">int</span>(<span style="color:var(--highlight-literal)">input</span>(<span style="color:var(--highlight-variable)">"Insert a postive integer:"</span>)) <span style="color:var(--highlight-comment)">#4</span>
 
<span style="color:var(--highlight-literal)">print</span>(<span style="color:var(--highlight-variable)">f"<span style="color:var(--highlight-color)">{<span style="color:var(--highlight-variable)">'+'</span>.join(<span style="color:var(--highlight-literal)">map</span>(<span style="color:var(--highlight-literal)">str</span>, <span style="color:var(--highlight-literal)">range</span>(<span style="color:var(--highlight-namespace)">1</span>, num * <span style="color:var(--highlight-namespace)">2</span>, <span style="color:var(--highlight-namespace)">2</span>)))}</span>=<span style="color:var(--highlight-color)">{<span style="color:var(--highlight-literal)">sum</span>(<span style="color:var(--highlight-literal)">range</span>(<span style="color:var(--highlight-namespace)">1</span>, num * <span style="color:var(--highlight-namespace)">2</span>, <span style="color:var(--highlight-namespace)">2</span>))}</span>"</span>)</code></span></span>

输出:

1+3+5+7=16

使用字符串:

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-python">num = <span style="color:var(--highlight-literal)">int</span>(<span style="color:var(--highlight-literal)">input</span>(<span style="color:var(--highlight-variable)">"Insert a postive integer:"</span>)) <span style="color:var(--highlight-comment)">#4</span>
oddNum = <span style="color:var(--highlight-namespace)">1</span>
total = <span style="color:var(--highlight-namespace)">0</span>
count = <span style="color:var(--highlight-namespace)">1</span>
sequence = <span style="color:var(--highlight-variable)">''</span>
<span style="color:var(--highlight-keyword)">while</span> count <= num:
    sequence += (<span style="color:var(--highlight-variable)">"+"</span> <span style="color:var(--highlight-keyword)">if</span> sequence != <span style="color:var(--highlight-variable)">""</span> <span style="color:var(--highlight-keyword)">else</span> <span style="color:var(--highlight-variable)">""</span>) + <span style="color:var(--highlight-literal)">str</span>(oddNum)
    total = total + oddNum
    oddNum = oddNum + <span style="color:var(--highlight-namespace)">2</span>
    count += <span style="color:var(--highlight-namespace)">1</span>

<span style="color:var(--highlight-literal)">print</span> (sequence + <span style="color:var(--highlight-variable)">"="</span> + <span style="color:var(--highlight-literal)">str</span>(total))</code></span></span>

使用打印:

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-python">num = <span style="color:var(--highlight-literal)">int</span>(<span style="color:var(--highlight-literal)">input</span>(<span style="color:var(--highlight-variable)">"Insert a postive integer:"</span>)) <span style="color:var(--highlight-comment)">#4</span>
oddNum = <span style="color:var(--highlight-namespace)">1</span>
total = <span style="color:var(--highlight-namespace)">0</span>
count = <span style="color:var(--highlight-namespace)">1</span>
<span style="color:var(--highlight-keyword)">while</span> count <= num:
    <span style="color:var(--highlight-keyword)">if</span> count != <span style="color:var(--highlight-namespace)">1</span>:
        <span style="color:var(--highlight-literal)">print</span>(<span style="color:var(--highlight-variable)">'+'</span>, end=<span style="color:var(--highlight-variable)">''</span>)
    <span style="color:var(--highlight-literal)">print</span> (oddNum, end=<span style="color:var(--highlight-variable)">''</span>)
    total = total + oddNum
    oddNum = oddNum + <span style="color:var(--highlight-namespace)">2</span>
    count += <span style="color:var(--highlight-namespace)">1</span>

<span style="color:var(--highlight-literal)">print</span> (<span style="color:var(--highlight-variable)">"="</span> + <span style="color:var(--highlight-literal)">str</span>(total)) </code></span></span>

或者使用 walrus (:=)rangeprintsepend

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-python"><span style="color:var(--highlight-literal)">print</span>(*(odd:=[*<span style="color:var(--highlight-literal)">range</span>(<span style="color:var(--highlight-namespace)">1</span>,<span style="color:var(--highlight-literal)">int</span>(<span style="color:var(--highlight-literal)">input</span>(<span style="color:var(--highlight-variable)">'Insert a postive integer:'</span>))*<span style="color:var(--highlight-namespace)">2</span>,<span style="color:var(--highlight-namespace)">2</span>)]),sep=<span style="color:var(--highlight-variable)">'+'</span>,end=<span style="color:var(--highlight-variable)">'='</span>);<span style="color:var(--highlight-literal)">print</span>(<span style="color:var(--highlight-literal)">sum</span>(odd))
<span style="color:var(--highlight-comment)"># Insert a postive integer:4</span>
<span style="color:var(--highlight-comment)"># 1+3+5+7=16</span></code></span></span>

转载:https://www.szwzim.cn/bcjs/53.html 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值