Python:以逗号(英文半角)分隔的格式输入a,b,c的值,例如1,-2,1判断是否有实根,有实根则按如下格式保留两位小数输出:X1=实根1,X2=实根2
时间: 2023-05-30 22:03:23 浏览: 104
可以使用公式判别法来判断是否有实根,具体实现如下:
```python
import math
# 输入a、b、c的值
a, b, c = map(float, input().split(','))
# 计算判别式
delta = b * b - 4 * a * c
# 判断是否有实根
if delta >= 0:
# 计算实根
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
# 保留两位小数输出
print('X1={:.2f}, X2={:.2f}'.format(x1, x2))
else:
print('No real roots.')
```
使用`map(float, input().split(','))`可以方便地将输入的字符串转换为浮点数列表。计算判别式后,如果判别式大于等于0,则使用公式计算实根,并使用字符串格式化输出保留两位小数的结果。如果判别式小于0,则输出"No real roots."。
相关问题
输入:第1行,形如“nList=[x1,x2,……,xn]”表示的一组存放在列表nList中的数据。 第2行,过滤数据的条件表达式,输入已确保该条件表达式是合法的Python表达式。表达式中的x表示列表nList的每个数据项。 输出:半角逗号分隔的过滤后的数据
下面是一个简单的 Python 代码,可以实现你的要求:
```python
# 读取输入
nList = eval(input())
expr = input()
# 过滤数据
filtered = [str(x) for x in nList if eval(expr)]
# 输出结果
print(",".join(filtered))
```
这个代码通过 `eval()` 函数将输入的字符串转换为列表和表达式,然后使用列表推导式过滤出符合条件的数据,最后使用 `",".join()` 函数将过滤后的数据按照半角逗号连接起来并输出。需要注意的是,`eval()` 函数会直接执行输入的代码,因此需要确保输入的表达式是安全合法的。
编写程序,输入一行若干个整数(小于10个),整数间用半角逗号进行分隔,输出它的区间范围,每个区间边界用半角减号分隔,区间间用半角逗号分隔。 【注意】输入、输出各占一行,运行效果应如下所示(第1行为输入,数据间用半角空格分隔,第2行为输出),格式错误算结果错误。 1 2 3 4 5 6 7 8 10 21 22 23 1-8,10,21-23;
```python
num_list = list(map(int, input().split(",")))
num_list.sort()
result = []
start_num = num_list[0]
for i in range(1, len(num_list)):
if num_list[i] != num_list[i-1]+1:
end_num = num_list[i-1]
if start_num == end_num:
result.append(str(start_num))
else:
result.append(str(start_num)+"-"+str(end_num))
start_num = num_list[i]
if start_num == num_list[-1]:
result.append(str(start_num))
else:
result.append(str(start_num)+"-"+str(num_list[-1]))
print(",".join(result))
```
简析:
首先将输入的字符串转成整数列表,并排序。
接着定义一个空列表用于存储结果,定义一个变量`start_num`用于保存当前连续区间的起始数。
然后遍历整数列表,如果当前数不是与前一个数连续的,则找到一个连续的区间,并利用`str`函数将区间的起始数和结束数转成字符串形式存入结果列表。重新设置`start_num`为当前数。
最后,循环结束后,最后一段连续的区间也需要加入到结果列表中。
最后将结果列表转成用逗号分隔的字符串输出即可。
阅读全文