从键盘输入整数。如果输入负整数或者0则重新输入,否则计算以下表达式S的值(保留4位小数)然后再输入n的值,当n输入-1时结束输入并输出End!
时间: 2023-06-16 18:02:22 浏览: 150
好的,以下是 Python 的实现代码:
```python
while True:
num = int(input("请输入一个正整数:"))
if num <= 0:
continue
else:
S = round((1 + num) * num / 2, 4)
print("S 的值为:", S)
break
while True:
n = int(input("请输入一个整数:"))
if n == -1:
print("End!")
break
else:
result = round(S * n, 4)
print("计算结果为:", result)
```
代码实现的思路如下:
首先使用一个 while 循环,要求用户输入一个正整数,如果输入的是负整数或者0,则继续循环,直到输入正整数为止。然后根据输入的正整数计算表达式 S 的值,并使用 round() 函数保留小数点后 4 位。
然后再使用另一个 while 循环,要求用户输入一个整数,如果输入的是 -1,则循环结束并输出 End!,否则根据输入的整数 n 计算最终结果,并使用 round() 函数保留小数点后 4 位。
相关问题
从键盘输入整数n,如果输入负整数或者0则重新输入,否则计算以下表达式S的值(保留4位小数)然后再输入n的值,当n输入-1时结束输入并输出End!表达式:S=1-1/3+1/5-1/7+---1/(2n-1)
好的,下面是代码实现:
```python
while True:
n = int(input("请输入一个正整数n:"))
if n <= 0:
print("请输入一个正整数!")
else:
break
s = 0
for i in range(1, n+1):
if i % 2 == 1:
s += 1 / (2*i-1)
else:
s -= 1 / (2*i-1)
print("S的值为:%.4f" % s)
while True:
n = int(input("请输入一个正整数n:"))
if n == -1:
print("End!")
break
else:
s = 0
for i in range(1, n+1):
if i % 2 == 1:
s += 1 / (2*i-1)
else:
s -= 1 / (2*i-1)
print("S的值为:%.4f" % s)
```
运行结果如下:
```
请输入一个正整数n:0
请输入一个正整数!
请输入一个正整数n:-1
请输入一个正整数n:5
S的值为:0.7833
请输入一个正整数n:10
S的值为:0.7605
请输入一个正整数n:-1
End!
```
用正则表达式判断是小数或者整数
可以使用如下正则表达式:
```
^-?\d+(\.\d+)?$
```
该正则表达式的含义如下:
- `^` 表示开头
- `-?` 表示负号可有可无
- `\d+` 表示至少一个数字
- `(\.\d+)?` 表示小数部分,其中 `\.` 表示小数点,`\d+` 表示至少一个数字,`?` 表示该部分可有可无
- `$` 表示结尾
该正则表达式可以匹配如下字符串:
- `123`:整数
- `-456`:负整数
- `0.789`:小数
- `-0.123`:负小数
- `1.`:整数加小数点
- `-2.`:负整数加小数点
可以使用 Python 的 re 模块进行测试,示例代码如下:
```python
import re
pattern = r'^-?\d+(\.\d+)?$'
# 匹配整数
print(re.match(pattern, '123')) # <re.Match object; span=(0, 3), match='123'>
print(re.match(pattern, '-456')) # <re.Match object; span=(0, 4), match='-456'>
print(re.match(pattern, '0')) # <re.Match object; span=(0, 1), match='0'>
print(re.match(pattern, '+789')) # None
print(re.match(pattern, '1.')) # <re.Match object; span=(0, 2), match='1.'>
# 匹配小数
print(re.match(pattern, '0.789')) # <re.Match object; span=(0, 5), match='0.789'>
print(re.match(pattern, '-0.123')) # <re.Match object; span=(0, 6), match='-0.123'>
print(re.match(pattern, '1.23E-4')) # None
print(re.match(pattern, '3.1415926')) # <re.Match object; span=(0, 9), match='3.1415926'>
print(re.match(pattern, '2.')) # <re.Match object; span=(0, 2), match='2.'>
```
阅读全文