用python:【问题描述】 编写程序实现:从键盘输入整数n。从文件"in.txt"中读入n行,将其中以字母A开头的行打印到标准输出(这里指的是屏幕)中。 【输入形式】 从键盘输入整数n; 文件输入的第1至n行的每一行构成一个字符串。 【输出形式】 标准输出的每一行是字母A开头的行。若未找到符合条件的字符串,则输出"not found";若输入数据不合法(指n为小数或负数)则输出"illegal input"。
时间: 2023-12-03 08:43:25 浏览: 145
C语言:超长正整数的减法
可以使用`input()`函数获取整数n,然后使用`try-except`语句判断输入是否非法(如果`int()`函数不能将输入转化为整数则会抛出`ValueError`异常)。接着,我们可以使用`with open() as`语句打开文件,循环读取每一行并判断是否以字母"A"开头,如果是则打印该行,如果没有符合条件的行,则打印"not found"。下面是代码实现:
```python
try:
n = int(input("请输入整数n:"))
if n <= 0 or n != int(n):
raise ValueError
except ValueError:
print("illegal input")
else:
found = False
with open("in.txt", "r") as f:
for i in range(n):
line = f.readline().strip()
if line.startswith("A"):
print(line)
found = True
if not found:
print("not found")
```
需要注意的是,`f.readline()`会返回包含行尾换行符的字符串,我们可以使用`strip()`函数去掉这个换行符。另外,由于文件可能不够n行,所以我们需要在循环中使用`found`标记是否找到符合条件的行。
阅读全文