Python数据获取与表示基础编程练习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据获取与表示基础编程练习
《用Python玩转数据》by Dazhuang@NJU
Python中便捷高效的数据结构例如序列可以很好地用来解决问题,下面几个例子大家可以用来练手,难度不低,参考代码仅供参考,可以有很多写法,继续Fighting ^_^
1. 从键盘输入整数n(1-9之间),对于1-100之间的整数删除包含n并且能被n整除的数,例如如果n为6,则要删掉包含6的如6,16这样的数及是6的倍数的如12和18这样的数,输出所有满足条件的数,要求每满10个数换行。
测试数据:
Enter the number: 6
屏幕输出:
1,2,3,4,5,7,8,9,10,11
13,14,15,17,19,20,21,22,23,25
27,28,29,31,32,33,34,35,37,38
39,40,41,43,44,45,47,49,50,51
52,53,55,57,58,59,70,71,73,74
75,77,79,80,81,82,83,85,87,88
89,91,92,93,94,95,97,98,99,100
2. 请用随机函数产生500行1-100之间的随机整数存入文件random.txt中,编程寻找这些整数的众数并输出,众数即为一组数中出现最多的数。
3. 文件article.txt中存放了一篇英文文章(请自行创建并添加测试文本),假设文章中的标点符号仅包括“,”、“.”、“!”、“?”和“…”,编程找出其中最长的单词并输出。
【参考代码】
1.
#-*-coding:utf-8-*-
"""
@author: Dazhuang
"""
n = int(input("Enter the number: "))
count = 0
new_str = ''
print("The result string: ")
for i in range(101):
s = str(i)
if i % n != 0 and s.find(str(n)) == -1:
new_str = new_str + s + ','
count += 1
if count % 10 == 0:
print(new_str[:-1])
new_str = ''
if len(new_str) > 0:
print(new_str[:-1])
或
s = input()
i = int(s)
num = list(map(str, filter(lambda x: x % i and s not in str(x), range(1, 101)))) for i in range(0, len(num), 10):
print(','.join(num[i:i+10]))
2.
#-*-coding:utf-8-*-
"""
@author: Dazhuang
"""
import random
with open('random.txt', 'w+') as fp:
for i in range(500):
fp.write(str(random.randint(1, 100)))
fp.write('\n')
fp.seek(0)
nums = fp.readlines()
nums = [num.strip() for num in nums]
setNums = set(nums)
lst = [0] * 101
for num in setNums:
c = nums.count(num)
lst[int(num)] = c
for i in range(len(lst)):
if lst[i] == max(lst):
print(i)
3.
#-*-coding:utf-8-*-
"""
@author: Dazhuang
"""
with open('article.txt') as fp:
data = fp.read()
words = data.split()
lst = []
for word in words:
if word[-3:] == '...':
word = word[:-3]
lst.append(word)
if word[-1] in ',.?!':
word = word[:-1]
lst.append(word)
result = sorted(lst, key = len, reverse = True) maxlen = len(result[0])
# 最长单词可能不止一个且要去掉相同的单词for word in set(result):
n = len(word)
if n == maxlen:
print(word)