如何培养编程思路

需求:创建文件

  1. 编写一个程序,要求用户输入文件名
  2. 如果文件已存在,要求用户重新输入
  3. 提示用户输入数据,每行数据先写到列表中
  4. 将列表数据写入到用户输入的文件名中
    1.思考程序的工作方式,交互式?非交互?
[root@localhost day04]# python3 mkfile.py 
文件名:/etc/hosts
文件已存在,请重试。
文件名:/
文件已存在,请重试。
文件名:/tmp/abc.txt
请输入内容,在单独的一行输入end表示结束。
(end to quit)> Hello World!
(end to quit)> chi le ma?
(end to quit)> the end
(end to quit)> end
[root@localhost day04]# ls /tmp/abc.txt
/tmp/abc.txt
[root@localhost day04]# cat /tmp/abc.txt
Hello World!
chi le ma?
the and

2.分析程序有哪些功能,将这些功能编写成功能函数,形成程序的大体框架。

def get_fname():
    '用于获取文件名,返回一个不存在文件名'
    
def get_content():
    '用于获取内容,返回一个列表'
    
def wfile(fname, content):
    '需要文件名和内容作为参数,将内容写入文件'

3.编写代码的主体,按一定的规则调用相关函数。

def get_fname():
    '用于获取文件名,返回一个不存在文件名'
    
def get_content():
    '用于获取内容,返回一个列表'
    
def wfile(fname, content):
    '需要文件名和内容作为参数,将内容写入文件'

if __name__ == '__main__':
    fname = get_fname()
    content = get_content()
    wfile(fname, content)

4.编写每个具体的函数代码。

import os

def get_fname():
    '用于获取文件名,返回一个不存在文件名'
    while 1:
        fname = input('文件名: ')
        # os.path.exists(fname),如果文件已存在返回True,不存在返回False
        if not os.path.exists(fname):
            break
        print('文件已存在,请重试')    
        
    return fname

def get_content():
    '用于获取内容,返回一个列表'
    content = []  # 创建一个列表,用于存储用户输入内容
    
    print('请输入内容,在单独的一行输入end表示结束。')
    while 1:
        line = input('(end to quit)> ')
        if line == 'end':
            break
        
        # content.append(line + '\n')
        content.append(line)
    
    return content

def wfile(fname, content):
    '需要文件名和内容作为参数,将内容写入文件'
    with open(fname, 'w') as fobj:
        fobj.writelines(content)
        
if __name__ == '__main__':
    fname = get_fname()
    content = get_content()
    content = ['%s\n' % line for line in concent] # 给字符串加上\n后,替换content变量
    wfile(fname, content)        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值