大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!!
本次为师傅们带来的是“红亚杯”Python编程专题赛——满分解析系列的第④期,是“Python基础编程(3)”篇章哦!
第①期完整赛题、第②期Python基础编程(1)和第③期Python基础编程(2)的链接在下面,师傅们想看完整赛题、Python基础编程(1)、Python基础编程(2)的请安心享用:
【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析①_爱波吉的阿尼亚的博客-CSDN博客
【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析②_爱波吉的阿尼亚的博客-CSDN博客
【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析③_爱波吉的阿尼亚的博客-CSDN博客
目录
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))