【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析④

本文是红亚杯Python编程专题赛的第4期,涵盖数据截取、替换、格式化输出等基础编程任务。通过示例代码展示了如何使用Python进行字符串操作、列表判断、星期转换、回文数检测、最大公约数计算以及字符统计等,帮助读者巩固Python基础知识。
摘要由CSDN通过智能技术生成

大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!!

本次为师傅们带来的是“红亚杯”Python编程专题赛——满分解析系列的第④期,是“Python基础编程(3)”篇章哦!

第①期完整赛题、第②期Python基础编程(1)和第③期Python基础编程(2)的链接在下面,师傅们想看完整赛题、Python基础编程(1)、Python基础编程(2)的请安心享用:

【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析①_爱波吉的阿尼亚的博客-CSDN博客

【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析②_爱波吉的阿尼亚的博客-CSDN博客

【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析③_爱波吉的阿尼亚的博客-CSDN博客

目录​​​​​​​

Python基础编程(3)

数据截取

数据替换

格式化输出

列表成员判断

星期输出程序

判断回文数

最大公约数

生肖判断

字符统计

中文字符频率统计


Python基础编程(3)

Python编程基础:主要涉及python语言的变量和常量的规则和命名规定、不同进制之间的转换、运算符的优先级顺序、编码与解码、不同数据类型的区别和操作、循环、判断等流程控制语句的原理与使用、内置函数和模块、关键字的使用、类与对象的属性和方法、文件操作,共计30个训练任务;

数据截取

已知字符串“Welcome to the python match!”,使用切片方式获取其17至25的字符元素并打印结果。

要求通过索引获取字符串中字符;

代码保存地址为:/root/python1/fontindex.py

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

s = "Welcome to the python match!"
print(s[17:26])

数据替换

已知字符串s具体内容为“hello world,hello China,hello hongyaa”,要求移除空格、逗号,将字符串'hello'替换为'HELLO',编写程序进行结果打印。

使用内置函数方式进行字符串替换;

代码保存地址为:/root/python1/fontreplace.py

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

s = "hello world,hello China,hello hongyaa"
print(s.replace(" ","").replace(",","").replace("hello","HELLO"))

格式化输出

现有数字π,使用占位符%对其进行格式化输出,要求输出格式为浮点型,结果保留5位小数。

使用内置函数方式进行π赋值;

代码保存地址为:/root/python1/piformat.py

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

import math

PI=math.pi
print("%.5f"%PI)

列表成员判断

列表成员判断,现有一个列表[3,1,4,5.5,9,2,6],输入一个数字,判断数字是否存在于列表中。

实例如下:

终端输入:python /root/python1/listjudge.py 2

终端输出:True

使用外部传参方式(sys)进行数值传入;

定义num()函数用于判定数字是否存在与列表中(即和列表中数值相同);

运行程序,若数字存在与列表中,输出True,否则输出False;

代码保存地址为:/root/python1/listjudge.py

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

import sys
list=[3,1,4,5.5,9,2,6]
n = sys.argv[1]
def num(n):
    if (int(n) in list):
        print("True")
    else:
        print("False")
num(n)

星期输出程序

编写程序计入一个表示星期几的数字(1-7),输出对应的星期字符串名称。例如:输入7,输出“星期日”。

1)使用外部传参方式(sys)进行数值传入;

2)定义week()函数用于数字与星期的换算和输出;

3)使用format进行格式化输出;

4)数字范围为1-7,超出范围输出信息:“请输入数字1-7!”

5)代码保存地址为:/root/python1/week.py

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

import sys

n = sys.argv[1]
weeklist=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]

def week(n):
    if int(n)<1 or int(n)>7:
        print("请输入数字1-7!")
    else:
        w=weeklist[int(n)-1]
        print("{week}".format(week=w))
week(n)

判断回文数

要求传入一个任意数值n,编写程序判断这个数字n是不是回文数。

实例如下:

输入:python /root/python1/palin.py 123

输出:123不是回文数

输入:python /root/python1/palin.py 121

输出:121是回文数

说明:设i是一任意自然数,如果i的各位数字反向排列所得自然数与i相等,则i被称为回文数。

1)使用外部传参方式将数值传给变量n;

2)使用format方式进行格式化输出;

3)推荐使用倒叙方式进行程序编写;

4)代码保存地址为:/root/python1/palin.py

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

import sys

n = sys.argv[1]

if n[::-1]==n:
    print("{number}是回文数".format(number=n))
else:
    print("{number}不是回文数".format(number=n))

最大公约数

最大公约数计算,最大公约数计算,要求传入两个整数a,b,编写程序计算两个整数的最大公约数,并输出展示。

备注:若n是一个能被若干个整数同时均整除的整数,则n同时是这几个整数的约数,称这个整数为它们的“公约数”;公约数中最大的称为最大公约数。

终端输入:python divisor.py 2 3

终端输出:最大公约数为1

1)定义divi()函数用于计算最大公约数;

2)使用外部传参方式(sys)将数值传给变量a,b;

3)使用for循环从1开始,记录下可以同时被两个变量整除的数,最大的数就是最大公约数;

4)为了优化参数,推荐循环到两个变量中的值小的变量即可;

5)代码保存地址为:/root/python1/divisor.py;

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

import sys

a,b = sys.argv[1:3]

def divi(a,b):
    if a > b:
       smaller = b
    else:
       smaller = a
    for i in range(1,smaller + 1):
        if((a % i == 0) and (b % i == 0)):
            n = i
    print("最大公约数为"+str(n))

divi(int(a),int(b))

生肖判断

判断年份生肖,要求输入一个整数n,编写程序判断数字对应相应的生肖并输出结果。

实例如下:

输入:python /root/python1/zodiac.py 2021

输出:丑牛

1)十二生肖为:子鼠 ,丑牛,寅虎 ,卯兔 ,辰龙 ,巳蛇 ,午马 ,未羊,申猴 ,酉鸡,戌狗 ,亥猪;

2)生肖为12年一循环;

3)要求计算公元元年以后的年份(n>0),公元前年份不计在内,不满足年份条件则输出提示信息:“请输入公元后年份!”;

4)使用外部传参方式(sys)将数值传给变量n;

5)定义year()函数计算年份生肖;

6)代码保存地址为:/root/python1/zodiac.py;

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

# coding=utf-8
import sys

n = sys.argv[1]
yearlist=["酉鸡","戌狗","亥猪","子鼠","丑牛","寅虎","卯兔","辰龙","巳蛇","午马","未羊","申猴"]

def year(n):
    if int(n)<0:
        print("请输入公元后年份")
    else:
        n=int(n)
        z=n-int(n/12)*12
        y=yearlist[z-1]
        print(y)
year(n)

字符统计

统计字符个数,统计字符个数,根据提供的文件/root/python_data/this.txt,编写程序统计英文字母、空格、数字的个数,将结果打印;

1)读取文件(使用绝对路径),使用python字符串内建函数对文件内所有内容进行统计;

2)统计内容为:字母(letters)、数字(digit)、空格(space)、其他(other);

3)运行程序,终端输出为:字母数量为?,空格数量为?,数字数量为?,其他数量为?(其中逗号为英文字符)

4)代码保存地址为:/root/python1/word.py;

考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证程序结果是否正确。

操作环境: python

import string

with open('/root/python_data/this.txt') as f:
  txt = f.read()
  
l=0
s=0
d=0
o=0

for i in txt:
    if i.isalpha():
        l += 1
    elif i.isdigit():
        d += 1
    elif i.isspace():
        s += 1
    else:
        o += 1
        
print("字母数量为{letters},空格数量为{space},数字数量为{digit},其他数量为{other}".format(letters=l,space=s,digit=d,other=o))

中文字符频率统计

中文字符频率统计,编写一个程序,对给定的诗词文件中出现的全部字符(含中文字符)频率进行统计,按照降序输出;

要求程序中对全部文字word进行个数统计count,按照(word count)方式进行输出;

使用format进行格式化输出,输出格式都为左对齐,占3个位置(word count的最小宽度都为3);

调用函数打开文本文件,使用File write()方法写入结果;

诗词文件位置为:/root/python_data/poetry.txt;

频率统计结果保存至/root/python_data/wordcount.txt中;

代码保存地址:/root/python1/wordcount.py

备注:要求在代码中实现全部读取文件、遍历排序、结果写入文件等过程;

提示:可以在格式输出时,直接使用write()方法,文件都是用绝对路径。

结果展示:

        字符  个数
        落  3  
        潮  2 
考核条件如下:

1. 编写程序,判断程序文件中是否涉及指定数据及知识点,验证统计结果是否正确。

操作环境: python

def is_Chinese(ch):
    if '\u4e00' <= ch <= '\u9fff':
        return True
    
with open('/root/python_data/poetry.txt',encoding='utf8') as f:
  txt = f.read()

counts = {}
for i in txt:
    counts[i] = counts.get(i, 0) + 1
ls = list(counts.items())
ls.sort(key=lambda x:x[1], reverse=True)
with open('/root/python_data/wordcount.txt', 'a') as f:
        f.write("{:<3}{:<3}\n".format("字符", "个数"))
#指定列表中那一列作为排序的列
for i in range(len(counts)):
    word, count = ls[i]
    if is_Chinese(word):
        with open('/root/python_data/wordcount.txt', 'a') as f:
            f.write("{:<3}{:<3}\n".format(word, count))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱波吉的阿尼亚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值