文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 一、二使用步骤
- 1.汇率兑换程序
- 2.汇率兑换程序2
- 3. 一年按365 天计
- 4.判断水仙花数。
- 5.输入一行字符,统计其中有多少个单词,
- 二、三使用步骤
- 1等边三角形的绘制。
- 2.正方形的绘制。
- 3. 利用turtle库绘制以下紫色蟒蛇图形。
- 三、四使用步骤
- 1. 统计不同字符的个数
- 2,猜数游戏。
- 3,大公约数计算从两个整数,编写程序求出这两个整数的最大公约数和最小公倍数
- 4,编写一个程序,接收一行序列作为输入,并将序列中的所有字符以大写字符输出。
- 四、五使用步骤
- 1.编写一个程序,根据给定的公式计算并输出值,
- 2.学校招聘了8名新教师,已知学校有3个空闲办公室且工位充足,现需要随机安排这8名教师的工位。编写程序实现为这8名教师随机分配办公室的功能。
- 3.编写程序统计《三国演义》中出场频率排名前 20位的人物。
- 五、一使用步骤
- 1.整数序列求和。
- 2.整数排序。
- 3.使用列表实现斐波那契数列。
一、二使用步骤 1.汇率兑换程序
代码如下(示例):
TempStr=input("请输入币种符号(y(yuan)/d(dollar)):")
x=eval(input("请输入面额值:"))
if TempStr in ['Y','y']:
C=x/6
print("转换后是{:.2f}美元".format(C))
elif TempStr in ['D','d']:
F=x*6
print("转换后是{:.2f}人民币".format(F))
else:
print("输入格式错误!")
2.汇率兑换程序2
代码如下(示例):
Money = input('''目前仅支持人名币(Y)与美元(D)兑算,
请输入您需要用于兑换的货币数值及类型:''')
if Money[-1] in ["y","Y"]:
D = (eval(Money[0:-1]))/6
print(Money[0:-1]+"人民币可兑换{:.2f}美元".format(D))
elif Money[-1] in ["D","d"]:
Y = (eval(Money[0:-1]))*6
print(Money[0:-1]+"美元可兑换{:.2f}人民币".format(Y))
else:
print("输入格式错误")
该处使用的url网络请求的数据。
3. 一年按365 天计
以1.0作为每天的能力值基数,每天原地踏步则能力值为1.0,每天努力一点则能力值提高1%,每天再努力一点则能力值提高2%,一年后,这三种行为收获的成果相差多少呢?请利用math 库编写程序,求解下列公式。
import math math.pow(1, 365) math.pow((1+0.01), 365) math.pow((1+0.02), 365)4.判断水仙花数。
水仙花数是一个3位数,它的每位数字的3次幂之和等于它本身。例如,13+53+33=153,153就是一个水仙花数。编写程序,判断用户输入的3位数是否为水仙花数。
num3 = int(input("请输入一个三位数:"))
hundreds_place = int(num3 // 100 ) # 百位
ten_place = int(num3 / 10 % 10) # 十位
one_place = int(num3 % 10) # 个位
if hundreds_place ** 3 + ten_place ** 3 + one_place ** 3 == num3:
print(f"{num3}是水仙花数")
else:
print(f"{num3}不是水仙花数")
5.输入一行字符,统计其中有多少个单词,
每两个单词之间以空格隔开。例如,输入“This is a Python program”,输出“There are 5 words in the line”
s = input('请输入一行字符:')
li = s.split(" ")
n = len(li)
print(f"There are {n} words in the line")
二、三使用步骤
1等边三角形的绘制。
利用turtle 库中的turtle.fd函数和turtle.seth(函数绘制一个等边三角形
import turtle turtle.setup(500, 500) turtle.fd(100) turtle.left(120) turtle.fd(100) turtle.left(120) turtle.fd(100)2.正方形的绘制。
利用 turtle 库绘制正方形,
import turtle as t
t.setup(400,400)
for i in range(4):
a = i*90
t.seth(a)
t.fd(40)
t.done
3. 利用turtle库绘制以下紫色蟒蛇图形。
import turtle as tt #turtle库导入,取[别名]为tt
tt.setup(650, 350 , 200, 200) #绘制显示的窗体 (width,height,startx,starty)
tt.penup() #画笔抬起
tt.fd(-250) #向后倒退250个像素
tt.pendown() #画笔落下
tt.pensize(25) #画笔的宽度 25像素
tt.pencolor("purple") #画图的颜色
tt.seth(-40) #向右转40度
for i in range(4): #循环4次
tt.circle(40, 80) #在海龟的左侧绘制半径为40,80度的圆
tt.circle(-40, 80) #在海龟的右侧绘制半径为40,80度的圆
tt.circle(40, 80/2) #在海龟的左侧绘制半径为40,40度的圆
tt.fd(40) #往前走40像素
tt.circle(16, 180) #在海龟的左侧绘制半径为16,180度的圆
tt.fd(40 * 2/3) #往前
tt.done() #程序结束后不要立即退出
三、四使用步骤
1. 统计不同字符的个数
用户从键盘输入一行字符,编程统计并输出其中的英文,字符。数字、空格和其他字符的个数。
c,n,b,o = 0,0,0,0 # c代表字符个数 n代表数字个数 b代表空格个数 o代表其他字符个数
strs = input("请随意输入一行字符,包含字母,数字,空格或其他字符:")
for s in strs:
if ord('a') <= ord(s) <= ord('z') or ord('A') <= ord(s) <= ord('Z'):
c += 1
elif ord('0') <= ord(s) <= ord('9'):
n += 1
elif ord(' ') == ord(s):
b += 1
else:
o += 1
print("包含字母{0}个,数字{1}个,空格{2}个,其他字符{3}个".format(c,n,b,o))
2,猜数游戏。
在程序中预设一个 0~9之间的整数,让用户通过键盘来输入所猜的数。如果大于预设的数,则输出“遗憾,太大了”:如果小于预设的数,则输出“遗憾,太小了”。如此循环,直至猜中该数,则输出“预测N次,你猜中了!”,其中N是用户输入数字的次数。
k = 5
x = eval(input("请输入0~9之间的整数"))
tem = 0
while x != k:
tem += 1
if(x > k):
print("遗憾,太大了")
else:
print("遗憾,太小了")
x = eval(input("请输入0~9之间的整数"))
print("预测{}次,你猜中了".format(tem))
3,大公约数计算从两个整数,编写程序求出这两个整数的最大公约数和最小公倍数
(提示:求最大公约数可采用辗转相除法;求最小公倍数则用两个数的积除以最大公约数即可)。
m,n = eval(input("请输入连个整数,中间以逗号隔开"))
x,y = m,n
r = m % n
while r != 0:
m,n = n,r
r = m % n
print("{}和{}的最大公约数:{};最小公倍数:{:.0f}".format(x,y,n,x*y/n))
4,编写一个程序,接收一行序列作为输入,并将序列中的所有字符以大写字符输出。
lines = []
while True:
s = input()
if s:
lines.append(s.upper())
else:
break;
for sentence in lines:
print(sentence)
四、五使用步骤
1.编写一个程序,根据给定的公式计算并输出值,
公式为Q-sqr(2CD)/H)。C和H为固定值:C-50:H=30。D是一个变量,它的值应该以英文逗号分隔的序列输入程序。例如, 程序的输入序列为“100,150,180”,程序输出“18,22,24”
import math
c = 50
h = 30
value = []
print('请输入一组数字:')
items = [x for x in input().split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2 * c * float(d) / h)))))
print(','.join(value))
2.学校招聘了8名新教师,已知学校有3个空闲办公室且工位充足,现需要随机安排这8名教师的工位。编写程序实现为这8名教师随机分配办公室的功能。
import random
# 定义一个列表用来保存3个办公室
offices = [[], [], []]
# 定义一个列表用来存储8位老师的名字
names = ['张老师', '李老师', '赵老师', '高老师',
'刘老师', '周老师', '王老师', '吴老师']
for name in names:
# 将8位老师按照索引为0、1、2进行分组
index = random.randint(0, 2)
# print(index)
# 将8位老师放在不同列表中
offices[index].append(name)
flag = 1
for tempNames in offices:
print('办公室%d的人数为:%d' % (flag, len(tempNames)))
flag += 1
for name in tempNames:
print("%s" % name, end=' ')
print(" ")
3.编写程序统计《三国演义》中出场频率排名前 20位的人物。
import jieba
article = open('三国演义.txt', 'r', encoding='utf-8').read()
words = jieba.lcut(article)
//排除干扰项,可添加
exincludes = ['将军', '却说', '二人', '不可', '荆州', '如此', '不能',
'商议', '如何', '主公', '军士', '左右', '军马', '引兵',
'次日', '大喜', '天下', '于是', '东吴', '今日', '不敢',
'魏兵', '人马', '不知', '汉中', '陛下', '一人', '众将',
'只见', '蜀兵', '大叫', '上马', '此人', '后人', '城中',
'背后', '一面', '先主', '太守', '大军', '何不', '然后',
'忽报', '先生', '夫人', '不如', '先锋', "何故", '江东',
'原来', '令人', '天子', '赶来', '徐州', '正是', '忽然',
'下马', '因此', '大败', '未知', '百姓', '成都', '大事',
'一军', '之后', '起兵', '喊声', '不见', '接应', '引军',
'进兵', '引军', '军中', '大怒', '大惊', '可以', '谋反',
'心中', '以为', '军民', '不得', '休走', '帐中', '可得']
nums = {}
//别称
for word in words:
if len(word) == 1 or word in exincludes:
continue
elif word in ['丞相','曹孟德','孟德']:
nums['曹操'] = nums.get('曹操', 0) + 1
elif word in ['孔明曰', '诸葛亮','卧龙','伏龙','武乡侯','忠武侯','蜀相']:
nums['孔明'] = nums.get('孔明', 0) + 1
elif word in ['玄德曰', '玄德' , '刘豫州','汉中王','汉昭烈帝','平原相','汉室宗亲','中山靖王之后','刘皇叔']:
nums['刘备'] = nums.get('刘备', 0) + 1
elif word in ['关公', '云长','寿亭侯','关云长']:
nums['关羽'] = nums.get('关羽', 0) + 1
elif word in ['都督','周郎','公瑾']:
nums['周瑜'] = nums.get('周瑜', 0) + 1
elif word in ['飞将','吕温侯','奉先','吕奉先']:
nums['吕布'] = nums.get('吕布', 0) + 1
elif word in ['常胜将军','子龙','赵子龙']:
nums['赵云'] = nums.get('赵云',0)+1
else:
nums[word] = nums.get(word, 0) + 1
numslist = list(nums.items())
//次数排序
numslist.sort(key=lambda x: x[1], reverse=True)
for i in range(20):
word, count = numslist[i]
print("{} {}".format(word, count))
答案案下
import jieba
excludes = {}#{"将军","却说","丞相"}
txt = open("三国演义.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
else:
counts[word] = counts.get(word,0) + 1
for word in excludes:
del(counts[word])
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(15):
word, count = items[i]
print ("{0:<10}{1:>5}".format(word, count))
五、一使用步骤
1.整数序列求和。
接收用户输入的整数n,计算并输出1~n相加的结果
接收用户输入的4个整数,并把这4个数由小到大输出



