目录
Python知识训练-选择结构与循环结构、函数、面向对象程序设计
太原理工大学Edu python 答案
第一阶段
# coding=utf-8 仍需妙手
# 请在此处添加代码完成输出“Hello Python”,注意要区分大小写!
########## Begin ##########
print('Hello Python')
########## End ##########
第二阶段
第一关-字符串的拼接:名字的组成
# coding=utf-8
# 存放姓氏和名字的变量
first_name = input()
last_name = input()
# 请在下面添加字符串拼接的代码,完成相应功能
########## Begin ##########
full_name=first_name+" "+last_name
print(full_name)
########## End ##########
第二关-字符转换
# coding=utf-8
# 存放姓氏和名字的变量
first_name = input()
last_name = input()
# 请在下面添加字符串拼接的代码,完成相应功能
########## Begin ##########
full_name=first_name+" "+last_name
print(full_name)
########## End ##########
第三关-字符串查找与替换
# coding = utf-8
source_string = input()
# 请在下面添加代码
########## Begin ##########
print(source_string.find("day"))
print(source_string.replace('day','time'))
print(source_string.replace('day','time').split(' '))
第一关-列表元素的增删改:客人名单的变化
# coding=utf-8
# 创建并初始化Guests列表
guests = []
while True:
try:
guest = input()
guests.append(guest)
except:
break
# 请在此添加代码,对guests列表进行插入、删除等操作
########## Begin ##########
s=len(guests)-1
deleted_guest=guests.pop(s)
guests.insert(2,deleted_guest)
del guests[1]
print(deleted_guest)
print(guests)
########## End ##########
第二关-列表元素的排序:给客人排序
# coding=utf-8
# 创建并初始化`source_list`列表
source_list = []
while True:
try:
list_element = input()
source_list.append(list_element)
except:
break
# 请在此添加代码,对source_list列表进行排序等操作并打印输出排序后的列表
########## Begin ##########
source_list.sort()
print(source_list)
########## End ##########
第三关-数值列表:用数字说话
# coding=utf-8
# 创建并读入range函数的相应参数
lower = int(input())
upper = int(input())
step = int(input())
# 请在此添加代码,实现编程要求
########## Begin ##########
data_list = list(range(lower,upper,step))
print(len(data_list))
print(max(data_list)-min(data_list))
########## End ##########
第四关-列表切片:你的菜单和我的菜单
# coding=utf-8
# 创建并初始化my_menu列表
my_menu = []
while True:
try:
food = input()
my_menu.append(food)
except:
break
# 请在此添加代码,对my_menu列表进行切片操作
########## Begin ##########
print(my_menu[::3])
print(my_menu[-3:])
########## End ##########
Python元组与字典入门
第一关-元组的使用:这份菜单能修改吗?
# coding=utf-8
# 创建并初始化menu_list列表
menu_list = []
while True:
try:
food = input()
menu_list.append(food)
except:
break
# 请在此添加代码,对menu_list进行元组转换以及元组计算等操作,并打印输出元组及元组最大的元素
###### Begin ######
print(tuple(menu_list))
print(max(menu_list))
####### End #######
第二关-字典的使用:这份菜单可以修改
# coding=utf-8
# 创建并初始化menu_dict字典
menu_dict = {}
while True:
try:
food = input()
price = int(input())
menu_dict[food]= price
except:
break
# 请在此添加代码,实现对menu_dict的添加、查找、修改等操作,并打印输出相应的值
########## Begin ##########
menu_dict['lamb']=50
print(menu_dict['fish'])
menu_dict['fish']=100
del menu_dict['noodles']
print(menu_dict)
########## End ##########
第三关-字典的遍历:菜名和价格的展示
# coding=utf-8
# 创建并初始化menu_dict字典
menu_dict = {}
while True:
try:
food = input()
price = int(input())
menu_dict[food]= price
except:
break
# 请在此添加代码,实现对menu_dict的遍历操作并打印输出键与值
########## Begin ##########
for keys in menu_dict.keys():
print(keys)
for values in menu_dict.values():
print(values)
########## End ##########
第四关-嵌套 - 菜单的信息量好大
# coding=utf-8
# 初始化menu1字典,输入两道菜的价格
menu1 = {}
menu1['fish']=int(input())
menu1['pork']=int(input())
# menu_total列表现在只包含menu1字典
menu_total = [menu1]
# 请在此添加代码,实现编程要求
########## Begin ##########
menu2={'fish':menu1['fish']*2,'pork':menu1['pork']*2}
menu_total.append(menu2)
########## End ##########
# 输出menu_total列表
print(menu_total)
运算符的使用
第一关-算术、比较、赋值运算符
# 定义theOperation方法,包括apple和pear两个参数,分别表示苹果和梨子的数量
def theOperation(apple,pear):
# 请在此处填入计算苹果个数加梨的个数的代码,并将结果存入sum_result变量
########## Begin ##########
sum_result=(apple+pear)
########## End ##########
print(sum_result)
# 请在此处填入苹果个数除以梨的个数的代码,并将结果存入div_result变量
########## Begin ##########
div_result=(apple/pear)
########## End ##########
print(div_result)
# 请在此处填入苹果个数的2次幂的代码,并将结果存入exp_result变量
########## Begin ##########
exp_result=(apple**2)
########## End ##########
print(exp_result)
# 请在此处填入判断苹果个数是否与梨的个数相等的代码,并将结果存入isequal变量
########## Begin ##########
isequal=(apple==pear)
########## End ##########
print(isequal)
# 请在此处填入判断苹果个数是否大于等于梨的个数的代码,并将结果存入ismax变量
########## Begin ##########
ismax=(apple>=pear)
########## End ##########
print(ismax)
# 请在此处填入用赋值乘法运算符计算梨个数乘以2的代码,并将结果存入multi_result变量
########## Begin ##########
multi_result=(pear*2)
########## End ##########
print(multi_result)
第二关-逻辑运算符
# 定义逻辑运算处理函数theLogic,其中tom与Jerry分别代表两个输入参数
def theLogic(tom,jerry):
# 请在此处填入jerry的布尔“非”代码,并将结果存入到not_result这个变量
########## Begin ##########
not_result=not jerry
########## End ##########
print(not_result)
# 请在此处填入tom,jerry的逻辑与代码,并将结果存入到and_result这个变量
########## Begin ##########
and_result=tom and jerry
########## End ##########
print(and_result)
第三关-位运算符
# 定义位运算处理函数bit, 其中bitone和bittwo两个参数为需要进行位运算的变量,由测试程序读入。
def bit(bitone,bittwo):
# 请在此处填入将bitone,bittwo按位与的代码,并将运算结果存入result变量
########## Begin ##########
result=bitone&bittwo
########## End ##########
print(result)
# 请在此处填入将bitone,bittwo按位或的代码,并将运算结果存入result变量
########## Begin ##########
result=bitone|bittwo
########## End ##########
print(result)
# 请在此处填入将bitone,bittwo按位异或的代码,并将运算结果存入result变量
########## Begin ##########
result=bitone^bittwo
########## End ##########
print(result)
# 请在此处填入将bitone按位取反的代码,并将运算结果存入result变量
########## Begin ##########
result=~bitone
########## End ##########
print(result)
# 请在此处填入将bittwo左移动两位的代码,并将运算结果存入result变量
########## Begin ##########
result=bittwo<<2
########## End ##########
print(result)
# 请在此处填入将bittwo右移动两位的代码,并将运算结果存入result变量
########## Begin ##########
result=bittwo>>2
########## End ##########
print(result)
第四关-成员运算符
# 定义成员片段函数member,参数me为待判断的人名,member_list为成员名单
def member(me,member_list = []):
# 请在if后面的括号中填入判断变量me是否存在于list中的语句
########## Begin ##########
if( me in member_list):
print("我是篮球社成员")
else:
print("我不是篮球社成员")
########## End ##########
# 请在if后面的括号中填入判断变量me是否存在于list中的语句
########## Begin ##########
if( me not in member_list):
print("我不是篮球社成员")
else:
print("我是篮球社成员")
########## End ##########
第五关-身份运算符
# 定义addressone和addresstwo两个变量,并为其赋值
addressone = 20
addresstwo = 20
addressthree = 12
# 在if后面的括号中填入判断变量addressone与变量addresstwo是否有相同的存储单元的语句
########## Begin ##########
if(addressone is addresstwo):
print("变量addressone与变量addresstwo有相同的存储单元")
else:
print("变量addressone与变量addresstwo的存储单元不同")
########## End ##########
# 在if后面的括号中填入判断变量addresstwo与变量addressthree是否没有相同的存储单元的语句
########## Begin ##########
if(addresstwo is not addressthree):
print("变量addresstwo与变量addressthree的存储单元不同")
else:
print("变量addresstwo与变量addressthree有相同的存储单元")
########## End ##########
第六关-运算符的优先级
# 定义并实现优先级运算函数theProirity
def thePriority(var1,var2,var3,var4):
# 先将var1左移两位,然后计算var1与var2的和,最后后将这个值乘以var3,并将最终结果存入result变量
########## Begin ##########
result=((var1<<2)+var2)*var3
########## End ##########
print(result)
# 先将var1与var2按位与,然后计算得到的值与var3的和,最后后将这个值乘以var4,并将最终结果存入result变量
########## Begin ##########
result=((var1&var2)+var3)*var4
########## End ##########
print(result)
顺序与选择结构
第一关-顺序结构
changeOne = int(input())
changeTwo = int(input())
plus = int(input())
# 请在此添加代码,交换changeOne、changeTwo的值,然后计算changeOne、plus的和result的值
########## Begin ##########
changeOne,changeTwo=changeTwo,changeOne
result=changeOne+plus
########## End ##########
print(result)
第二关-选择结构:if-else
workYear = int(input())
# 请在下面填入如果workYear < 5的判断语句
########## Begin ##########
if workYear < 5:
########## End ##########
print("工资涨幅为0")
# 请在下面填入如果workYear >= 5 and workYear < 10的判断语句
########## Begin ##########
elif workYear >= 5 and workYear < 10:
########## End ##########
print("工资涨幅为5%")
# 请在下面填入如果workYear >= 10 and workYear < 15的判断语句
########## Begin ##########
elif workYear >= 10 and workYear < 15:
########## End ##########
print("工资涨幅为10%")
# 请在下面填入当上述条件判断都为假时的判断语句
########## Begin ##########
else:
########## End ##########
print("工资涨幅为15%")
第三阶段 控制结构-循环结构
第一关-While 循环与 break 语句
partcount = int(input())
electric = int(input())
count = 0
#请在此添加代码,当count < partcount时的while循环判断语句
#********** Begin *********#
while(count < partcount):
#********** End **********#
count += 1
print("已加工零件个数:",count)
if(electric):
print("停电了,停止加工")
#请在此添加代码,填入break语句
#********** Begin *********#
break
#********** End **********#
第二关-for 循环与 continue 语句
absencenum = int(input())
studentname = []
inputlist = input()
for i in inputlist.split(','):
result = i
studentname.append(result)
count = 0
#请在此添加代码,填入循环遍历studentname列表的代码
#********** Begin *********#
for student in studentname:
#********** End **********#
count += 1
if(count == absencenum):
#在下面填入continue语句
#********** Begin *********#
continue
#********** End **********#
print(student,"的试卷已阅")
第三关-循环嵌套
studentnum = int(input())
#请在此添加代码,填入for循环遍历学生人数的代码
#********** Begin *********#
for student in range(0,studentnum):
#********** End **********#
sum = 0
subjectscore = []
inputlist = input()
for i in inputlist.split(','):
result = i
subjectscore.append(result)
#请在此添加代码,填入for循环遍历学生分数的代码
#********** Begin *********#
for score in subjectscore:
#********** End **********#
score = int(score)
sum = sum + score
print("第%d位同学的总分为:%d" %(student,sum))
第四关-迭代器
List = []
member = input()
for i in member.split(','):
result = i
List.append(result)
#请在此添加代码,将List转换为迭代器的代码
#********** Begin *********#
IterList=iter(List)
#********** End **********#
while True:
try:
#请在此添加代码,用next()函数遍历IterList的代码
#********** Begin *********#
num=next(IterList)
#********** End **********#
result = int(num) * 2
print(result)
except StopIteration:
break
函数结构
第一关-函数的参数 - 搭建函数房子的砖
# coding=utf-8
# 创建一个空列表numbers
numbers = []
# str用来存储输入的数字字符串,lst1是将输入的字符串用空格分割,存储为列表
str = input()
lst1 = str.split(' ')
# 将输入的数字字符串转换为整型并赋值给numbers列表
for i in range(len(lst1)):
numbers.append(int(lst1.pop()))
# 请在此添加代码,对输入的列表中的数值元素进行累加求和
########## Begin ##########
def sum(numbers):
add=0
for i in numbers:
add+=i
return add
d=sum(numbers)
########## End ##########
print(d)
第二关-函数的返回值 - 可有可无的 return
# coding=utf-8
# 输入两个正整数a,b
a = int(input())
b = int(input())
# 请在此添加代码,求两个正整数的最大公约数
########## Begin ##########
def gcd(a,b):
if b>a:
a,b=b,a
tem=a%b
while(tem):
a=b
b=tem
tem=a%b
return b
########## End ##########
# 调用函数,并输出最大公约数
print(gcd(a,b))
第三关-函数的使用范围:Python 作用域
# coding=utf-8
# 输入两个正整数a,b
a = int(input())
b = int(input())
# 请在此添加代码,求两个正整数的最小公倍数
########## Begin ##########
def _gcd(c,d):
if(d>c):
c,d=d,c
tem=c%d
while(tem):
c=d
d=tem
tem=c%d
return int(a*b/d)
def lcm(a,b):
return _gcd(a,b)
########## End ##########
# 调用函数,并输出a,b的最小公倍数
print(lcm(a,b))
Python之组合数据类型(列表、元组、集合、字典)
第一关-列表及操作
#coding = utf-8
#********* Begin *********#
#第一步 请在列表fruit中找出不属于水果一类元素,赋值给变量 a
fruit = ["苹果","梨子","菠萝","黄瓜","香蕉"]
a =fruit[3]
#第二步 将变量 a 的值添加到列表vegetable 的末尾
vegetable = ["土豆","萝卜","茄子","白菜"]
vegetable.append(a)
#第三步 删去列表fruit中不属于水果的元素
fruit.pop(3)
#第四步 将列表fruit和列表vegetable作为元素按顺序加入到列表food中
food = []
food.append(fruit)
food.append(vegetable)
#最后打印输出列表food,打印输出列表food中第1个元素的第3个元素
print(food)
print(fruit[2])
#********* End *********#
第二关-元组及操作
#coding = utf-8
#********* Begin *********#
#第一题 列表和元组相互转换,修改元组中的数据
#第一步 将元组 fruit 转换为一个名为 fruit 的列表并打印输出
fruit = ("苹果","梨子","菠萝","黄瓜","香蕉")
fruit = list(fruit)
print(fruit)
#第二步 在上一步得到的列表 fruit 通过索引位置将"黄瓜"去掉并打印输出
fruit.pop(3)
print(fruit)
#第三步 将上一步的到的列表 fruit 转换为元组并打印输出
fruit = tuple(fruit)
print(fruit)
#第二题 通过元组的嵌套修改元组中的数据
#第一步 创建元组 food 将列表 fruit 和 vegetable 放入其中并打印输出元组food
fruit = ["苹果","梨子","菠萝","黄瓜","香蕉"]
vegetable = ["土豆","萝卜","茄子","白菜"]
food = (fruit,vegetable)
print(food)
#第二步 打印输出上一步得到的元组 food 的第一个元素(列表fruit)
print(food[0])
#第三步 通过索引位置去掉元组 food 的第一个元素(列表fruit)的"黄瓜"
food[0].pop(3)
print(food[0]) #打印输出列表 food 的第一个元素
#第四步 打印输出元组 food
print(food)
#********* End *********#
第三关-集合及操作
# -*- coding: utf-8 -*-
#********* Begin *********#
#第一步 请将列表fruit转换为一个集合
fruit = ["苹果","梨子","菠萝","黄瓜","香蕉"]
fruit = set(fruit)
#第二步 将集合fruit中的“黄瓜”去掉
fruit.remove("黄瓜")#注意:直接删除集合中的元素
#第三步 使用"in"判断"黄瓜"是否在fruit中,将判断结果打印输出
print('黄瓜' in fruit)
#第四步 创建空集合food,输出集合food的长度
food=set()
print(len(food))
#第五步 将fruit和vegetable合并到food并输出此时food的长度
vegetable = {"土豆","萝卜","茄子","白菜"}
food=fruit|vegetable
print(len(food))
#********* End *********#
第四关-字典及操作
# -*- coding: utf-8 -*-
#********* Begin *********#
#第一步 创建一个空字典 menu
menu={}
#第二步 将列表fruit中水果与prices中的价格对应给menu赋值并输出
fruit = ["苹果","梨子","菠萝","黄瓜","香蕉"]
prices = [2,3,10,2,1]
menu = {"苹果":2,"梨子":3,"菠萝":10,"黄瓜":2,"香蕉":1}
print(menu)
#第三步 将20块钱的"哈密瓜"添加到字典menu中并输出
menu['哈密瓜']=20
print(menu)
#第四步 将"黄瓜"从menu中去掉并输出
del menu['黄瓜']
print(menu)
#第五步 将菠萝的价格修改为9.9,打印输出menu
menu['菠萝']=9.9
print(menu)
#********* End *********#
Python知识训练-内置对象、运算符、内置函数、序列结构
内置对象:
B、C、C、A、A
运算符:
C、A、D、D、C、B 、A、C、B、C
内置函数:
C、B、A、B、A、C、C、B、B、A
序列结构:
A、C、D、B、B、D、B、C、B、A
Python知识训练-选择结构与循环结构、函数、面向对象程序设计
选择结构与循环结构:
A、C、B、C、D、C、B、B、A、A
函数:
A、B、B、C、B、A、B、B、A、A
面向对象程序设计:
D、C、C、B、B、A、A、A、B、B
Python控制结构(一)
第一关-if分支入门※
# 第一题
month = int(input())
# 31天的月份:1~7之间的奇数月、8~12之间的偶数月
# 如果是31天的月份输出yes
####### begin #######
if month in range(1,8):
if month%2!=0:
print('yes')
else:
print('no')
####### end #########
# 如果不是31天的月份,输出no
####### begin #######
if month in range(8,13):
if month%2!=0:
print('no')
else:
print('yes')
####### end #########
print('\n***********************\n')
#第二题
# 从测试集得到风速
velocity = int(input())
# 默认是0级
rank = 0
# 如果风速在74到95之间,输出1
####### begin #######
if velocity in range(74,96):
print('1')
####### end #########
# 如果风速在96到110之间,输出2
####### begin #######
elif velocity in range(96,111):
print('2')
####### end #########
# 如果风速在111到130之间,输出3
####### begin #######
elif velocity in range(111,131):
print('3')
####### end #########
# 如果风速在131到154之间,输出4
####### begin #######
elif velocity in range(131,155):
print('4')
####### end #########
# 如果风速大于155,输出5
####### begin #######
elif velocity>=155:
####### end #########
print('5')
else:
print(0)
第二关-while循环分支入门※
from math import *
i = 1 # 当前计算的值
s = 0 # 计算出来的和
# 第一题
########### begin ##########
for i in range(1,1000,2):
######### end ####
s = s + i ** 2
i = i + 2
print(s)
########## 第二题 ##############
x = int(input())
if x<0:
print('无实数解')
else:
g = x/2
#######begin##############
while abs(x-g*g)>=10**(-6):
#######end#################
g = (g+x/g)/2
print(g)
Python循环结构之break之判断素数
学习-Python循环结构之break之判断素数
"""
任务:判断给定的整数是否是素数。该整数是通过 input 获取。如果输入的数小于1,则输出“输入数据不合法”。
"""
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 判断给定的整数是否是素数,并按照输出格式打印结果
a=int(input())
j=0
if a<1:
print('输入数据不合法')
j=-1
else:
for i in range(2,a):
if a%i==0 :
j=j+1
if j>0:
print('不是素数')
elif j==0:
print('是素数')
##########End##########
循环结构
第一关-While 循环与 break 语句
partcount = int(input())
electric = int(input())
count = 0
#请在此添加代码,当count < partcount时的while循环判断语句
#********** Begin *********#
while(count < partcount):
#********** End **********#
count += 1
print("已加工零件个数:",count)
if(electric):
print("停电了,停止加工")
#请在此添加代码,填入break语句
#********** Begin *********#
break
#********** End **********#
第二关-for 循环与 continue 语句
absencenum = int(input())
studentname = []
inputlist = input()
for i in inputlist.split(','):
result = i
studentname.append(result)
count = 0
#请在此添加代码,填入循环遍历studentname列表的代码
#********** Begin *********#
for student in studentname:
#********** End **********#
count += 1
if(count == absencenum):
#在下面填入continue语句
#********** Begin *********#
continue
#********** End **********#
print(student,"的试卷已阅")
第三关-循环嵌套
studentnum = int(input())
#请在此添加代码,填入for循环遍历学生人数的代码
#********** Begin *********#
for student in range(0,studentnum):
#********** End **********#
sum = 0
subjectscore = []
inputlist = input()
for i in inputlist.split(','):
result = i
subjectscore.append(result)
#请在此添加代码,填入for循环遍历学生分数的代码
#********** Begin *********#
for score in subjectscore:
#********** End **********#
score = int(score)
sum = sum + score
print("第%d位同学的总分为:%d" %(student,sum))
函数调用
第一关-内置函数 - 让你偷懒的工具
# coding=utf-8
# 输入一个整数n
n = int(input())
j=0
# 请在此添加代码,对输入的整数进行判断,如果是素数则输出为True,不是素数则输出为False
########## Begin ##########
def prime(n):
if n>=2:
for i in range(2,n):
if n%i==0:
j=j+1
else:
return False
if j>0:
return False
else:
return True
第二关-函数正确调用 - 得到想要的结果
# coding=utf-8
# 输入数字字符串,并转换为数值列表
a = input()
num1 = eval(a)
numbers = list(num1)
# 请在此添加代码,对数值列表numbers实现从小到大排序
########## Begin ##########
def sort(numbers):
return(sorted(numbers))
print(sort(numbers))
########## End ##########
第三关-函数与函数调用 - 分清主次
# coding=utf-8
from math import pi as PI
n = int(input())
# 请在此添加代码,实现圆的面积计算,并输出面积结果
########## Begin ##########
def cirarea(r):
return (PI*r*r)
print('%.2f' %cirarea(n))
########## End ##########
经典函数实例
第一关-递归函数 - 汉诺塔的魅力
# coding=utf-8
# 输入正整数n
n = int(input())
# 请在此添加代码,对输入的正整数n进行阶乘运算,并输出计算结果。
########## Begin ###
def fact(n):
if n==1:
return 1
else:
return n*fact(n-1)
print(fact(n))
########## End ##########
第二关-lambda 函数 - 匿名函数的使用
# coding=utf-8
# 请在此添加代码,使用lambda来创建匿名函数,能够判断输入的两个数值的大小
########## Begin ##########
MAXIMUM=lambda x,y: x if x>y else y
MINIMUM=lambda x,y: x if x<y else y
########## End ##########
# 输入两个正整数
a = int(input())
b = int(input())
# 输出较大的值和较小的值
print('较大的值是:%d' % MAXIMUM(a,b))
print('较小的值是:%d' % MINIMUM(a,b))
第三关-Map-Reduce - 映射与归约的思想
# 输入一个正整数
n = int(input())
# 请在此添加代码,将输入的一个正整数分解质因数
#********** Begin *********#
def result(n):
result=[]
for i in range(2,n):
while n!=i:
if n%i==0:
#print(i)
result.append(i)
n=n/i
else:
break
#print(n)
result.append(int(n))
return result
#print(result (n))
print(n,'=','*'.join(map(str,result(n))))