【Python】综合运用知识点,判断输入数字是否为素数以及计算等级差,并将值保存到txt文本文档里

381 阅读2分钟

我正在参加「掘金·启航计划」

最近在学习python,如何快速提高所学编程和加深印象呢 很显然,通过多练习和尝试编写代码实现功能

  • 主要知识点列表 | 编号 | 语言或插件 | 知识点 | 说明 | | --- | --- | --- | --- | | 1 | python | %s | 字符出输出标识 | | 2 | python | 逻辑判断 | if-elif,python这个elif写法挺特别,一般都是else if,直接简写成了elif | | 3 | python | def | 定义方法关键词 | | 4 | python | open | 操作txt文档 |

【判断素数编程】

  • 编程要求如下

判断用户输入数字是否为素数,并将用户的输入写入a.txt,如果用户输入的是素数,是则将数字写入b.txt。
(素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数)

  • 分析题目 1)素数概念
    大于1的自然数,除了1和它本身不能被其他数整数

2)循环遍历遍历,从1到数字的一般,判断是否能被整数,如果都不能被整数,说明是素数

  • open函数,参数(扩展名,model=模式) | 编号 | 模式 | 说明 | | --- | --- | --- | | 1 | w | write,只能操作写入,会覆盖原来的数据 | | 2 | r |  read,只能读取 | | 3 | a |  append,向文件追加 | | 4 | w+/r+ |  可读可写 | | 5 | a+ |  可读可追加 | | 6 | wb+ |  写入数据 |

image.png

1655279626927.jpg

image.png

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2022.06.15 14:34
import sys 

while True:
    print('请输入一个数字:')
    value = int(input())
    
    arr=[]
    if value > 1:
        for v in range(int(value / 2)):
            if value % (v + 1) == 0 and v > 0:
                arr.append(v + 1)

    print('能被整数的值:%s' % arr)
    if len(arr) <=0:
        txt=open('b.txt',mode='a')
        txt.writelines(str(value)+"\n")
        print('数字:%s,是素数' % value)
    else:
        txt=open('a.txt',mode='a')
        txt.writelines(str(value)+"\n")
        print('数字:%s,不是素数' % value)
    print('\r\n')

【计算等差级数编程】

  • 编程要求如下

编写函数,计算等差级数1+2+3+4…..+n的值(其中,n由用户输入)。要求:将输入的数值n和计算的结果保存在jishu.txt文件中,保存格式如下:
级数:(此处写入用户输入的数据)和:(此处写所求结果)

  • 分析题目 有题目可知道,此处使用推导公式:(n + 1) * n / 2

image.png

image.png

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2022.06.15 14:34
import sys 

while True:
    print('请输入一个数字:')
    n = int(input())
    v = int((n + 1) * n / 2)
    print('(%s+1)*%s/2=%s' % (n,n,str(v)))
    txt=open('jisuan.txt',mode='a')
    txt.writelines("级数:%s\n" % n)
    txt.writelines("和:%s\n" % str(v))

    # 验证结果
    str_value = ''
    total = 0
    for i in range(n):
        total+=(i + 1)
        str_value+=str(i + 1) + '+'
    print("%s=%s\n" % (str_value.rstrip('+'),total))