python基础知识(三)基本编程题,应用题

基本编程题

1.从键盘输入一个整数和一个字符,以逗号隔开,在屏慕上显示输出一条信息。

示例如下:
输入:
10,@
输出:
@@@@@@@@@@10@@@@@@@@@@

s = input("请输入一个整数和一个字符,用逗号隔开:")

l = s.split(",")

num = int(l[0])

char = l[1]

char_output = char * num

print(char_output,num,char_output,sep="")

# sep 参数的作用是定义多个打印对象之间的分隔符。

2.从键盘输入一个由1和0组成的二进制字符串S,转换为八进制数输出显示在屏幕上。

s = input("请输入一个由1和0组成的二进制字符串:")

s = int(s,2)  # int(s, 2)将 s 视为二进制字符串进行解析

print("将二进制数{0:b}转换为八进制数为{0:o},十六进制数为{0:x},十进制数为{0}".format(s))

3.文件data.txt文件中有多行数据,打开文件,读取数据,并将其转化为列表。统计读取的数据,计算每一行的总和、平均值,在屏幕上输出结果。

data.txt内容:

Chinese:80,Math:85,English:92,Physical:81,Art:85,Chemical:88
Chinese:80,Math:85,English:92,Physical:81,Art:85,Chemical:88
Chinese:80,Math:85,English:92,Physical:81,Art:85,Chemical:88
Chinese:80,Math:85,English:92,Physical:81,Art:85,Chemical:88
Chinese:80,Math:85,English:92,Physical:81,Art:85,Chemical:88
Chinese:80,Math:85,English:92,Physical:81,Art:85,Chemical:88
data = open("data.txt","r")
for d in data:
    course = d.split(',')
    sum = 0
    for c in course:
        num = c.split(':')
        sum += float(num[1])
sum2 = sum / len(course)

print('总和为{},平均数为{:.2f}'.format(sum,sum2))

输出:

总和为511.0,平均数为85.17

在 Python 中保留小数点后两位可以使用字符串格式化: "{:.2f}".format(num)
注意在打开文件open("data.txt","r")后直接打印的话打印出来的是文件对象,而不是文件中的内容。要打印文件中的内容,需要使用文件对象的读取方法如read()readline()readlines()。如下:

data = open("data.txt","r")
print(data.read())  # 读取整个文件内容并打印
data.close()  # 记得关闭文件

或者通过for循环遍历文件对象,可以逐行读取并打印文件的内容。

简单应用题

4.使用turtle库的turtle.seth()函数绘制同心圆套圈,最小的圆圈半径为10像素,不同圆圈之间的半径差是40像素,效果如下图所示。

在这里插入图片描述

import turtle

r = 10
d = 40
head = 90

for i in range(4):
    turtle.pendown()
    turtle.circle(r)
    r += d
    turtle.penup()
    turtle.seth(-head)
    turtle.fd(d)
    turtle.seth(0)
turtle.done()

5.分词并统计中文词语的出现次数,并输出出现最多的词以及其出现次数.

首先将标点符号都替换掉,
然后,将被去掉了标点符号的字符串 使用jieba.lcut(s)进行分词,用列表words存储所有分词。

创建空字典all_words存储所有词语及其出现次数。
max存储最大次数。
high_words,用来存储出现次数最大的词语。

使用for循环在列表words中遍历,每一次遍历时,都在词语后面加上一个“/”,并在字典all_words存入当时的词语(i),并且使得词语i对应的值加1(也就是出现次数加一)。
第一个for循环后打印输出词语总数,也就是words列表长度。

再使用for循环在字典all_words中遍历, all_words[key]即词语出现的次数。
如果词语出现次数大于最大次数max,那么max就等于词语出现次数,并且在high_words内存入该次数(值)所对应的词语(键);
如果词语出现次数和最大次数相等,那么将出现次数最多的词语(即出现次数最多的键)连接到 high_words 中。如有多个词语出现的次数相同,那么它们会被连接到同一个字符串中,用空格隔开。这样做是为了将所有出现次数最多的词语记录下来。
之后再将all_words中所有的键值打印出来,也就是打印词语及其出现次数。

最后将出现最多的词以及其出现次数输出。

import jieba

s = "工业互联网实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。"

s = s.replace(',','').replace('、','').replace('。','')

words = jieba.lcut(s)

all_words = {}
max = 0
high_words = ""


for i in words:
    print(i,end = '/')
    all_words[i] = all_words.get(i,0) + 1
print('\n中文词语数是:{}'.format(len(words)))

for key in all_words:
    if max < all_words[key]:
        max = all_words[key]
        high_words = key
    elif max == all_words[key]:
        high_words += '' + key
    print("{}:{}".format(key,all_words[key]))
print("出现最多的词是({}):{}次".format(high_words,max))

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值