自拟一个包含“标准库函数”、“选择”、“循环”、“列表”、“字符串”、“字典”、“集合”、“自定义函数”、“第三方库函数”中至少5 个知识点应用的小程序,并给出运行结果。该程序解决的问题不能与前两个问题中的任何一个相同。
该回答引用chatgpt:
# 导入第三方库
import numpy as np
# 标准库函数 - 获取当前日期和时间
import datetime
current_time = datetime.datetime.now()
print("当前时间:", current_time)
# 选择 - 判断一个数的正负性
num = -5
if num > 0:
print("正数")
elif num < 0:
print("负数")
else:
print("零")
# 循环 - 计算1到10的累加和
sum = 0
for i in range(1, 11):
sum += i
print("累加和:", sum)
# 列表 - 反转列表
numbers = [1, 2, 3, 4, 5]
reversed_numbers = numbers[::-1]
print("反转后的列表:", reversed_numbers)
# 字符串 - 大写字母转换为小写字母
string = "HELLO"
lowercase_string = string.lower()
print("转换后的字符串:", lowercase_string)
# 字典 - 查询字典中的值
student = {"name": "Alice", "age": 20, "grade": "A"}
age = student["age"]
print("学生的年龄:", age)
# 集合 - 求两个集合的交集
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
intersection = set1.intersection(set2)
print("两个集合的交集:", intersection)
# 自定义函数 - 计算圆的面积
def calculate_circle_area(radius):
area = np.pi * radius ** 2
return area
circle_radius = 3
circle_area = calculate_circle_area(circle_radius)
print("圆的面积:", circle_area)
# 第三方库函数 - 使用numpy生成随机数
random_numbers = np.random.rand(5)
print("随机数:", random_numbers)
不知道你这个问题是否已经解决, 如果还没有解决的话:编程基础第六版 课后题
代码如下
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,t;
int a[15];
int x,l,h,mid,n;
n=15;
l=0;
h=n-1;
printf("请输入15个不同数字,按一次输入一个,依次输入15次的方法输入数字:\n");
for(i=0;i<15;i++)
scanf("%d",&a[i]);
for(j=0;j<14;j++)
{
for(i=0;i<14-j;i++) //这里我第一次写也忽略了j要不断的去替换i,所以对于i来说它的循环条件应该是14-j,有好多人可能和我一样写成i<15啦
if( a[i]<a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
printf("按从大到小的排序结果:");
for( i=0;i<15;i++)
printf("%d\t",a[i]);
printf("\n");
for (l=0, h=14, printf("请输入一个数:"), scanf("%d", &x); l<=h;)//while也可以但是我很奇怪用while会提前退出循环哈哈哈
{
mid=(l+h)%2;
if (x>a[mid])h=mid-1;
else if (x<a[mid])l=mid+1;
else
{
printf("%d是第%d位数",x,mid+1);
break;
}
}
if(x!=a[mid])
printf("查无此数!");
return 0;
}
这里给出一个使用选择、循环、列表、字符串、标准库函数、自定义函数的Python小程序,实现一个统计单词个数的功能:
import string
# 自定义函数,用于去除单词开头和结尾的标点符号
def remove_punct(word):
if word == '':
return word
if word[0] in string.punctuation:
word = remove_punct(word[1:])
if word[-1] in string.punctuation:
word = remove_punct(word[:-1])
return word
# 选择输入文件名,使用with语句打开文件,并将所有内容读入一个字符串
filename = input("请输入要统计单词个数的文件名:")
with open(filename, 'r') as f:
contents = f.read()
# 将字符串转换为单词列表,过滤掉空白单词和标点符号,将所有单词转换为小写形式
words = [remove_punct(word.lower()) for word in contents.split() if word.strip() != '' and word[0] not in string.punctuation]
# 使用字典统计每个单词出现的次数
word_counts = {}
for word in words:
if word in word_counts:
word_counts[word] += 1
else:
word_counts[word] = 1
# 将字典转换为按出现次数排序的单词列表
word_list = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# 输出前20个单词及其出现次数
for i in range(20):
print("{0}: {1}".format(word_list[i][0], word_list[i][1]))
程序需要用户手动输入要统计单词个数的文件名,然后使用with语句打开文件,并将所有内容读入一个字符串。接下来使用字符串的split()方法将字符串分割成单词列表,然后过滤掉空白单词和标点符号,并将所有单词转换为小写形式。这个过程中使用了自定义函数remove_punct(),它用于去除单词开头和结尾的标点符号。接下来使用一个字典word_counts统计每个单词出现的次数。最后将字典转换为按出现次数排序的单词列表,并输出前20个单词及其出现次数。程序的输出结果类似于:
the: 2313
of: 1294
and: 1256
to: 1043
in: 852
a: 828
that: 619
it: 612
is: 609
for: 565
with: 490
on: 487
as: 435
was: 415
by: 362
an: 337
be: 329
this: 326
are: 313
which: 301