Python基础函数的编写
1.输入一行字符,统计其中有多少个单词,每两个单词之间以空格隔开,并将输入字符按首字母大写居中,每个单词首字母大写左对齐,全小写,全大写右对齐的方式分别输出。
如输入:?This?is?a?c++?program.?
输出:There?are?5?words?in?the?line.??
输入代码:
a=input("请输入一行英文字符串: ")
b=a.capitalize()
print(b.center(60)) #中间布局
c=a.title() #首字母大写
print(c.ljust(len(a))) #填充指定长度
d=a.lower()
print(d)
e=a.upper() #全部大写
print(e.rjust(60))
print(“There are”,b.count(" ")+1,“words in the line”)
运行结果:
2.写代码,有如下变量,请按照要求实现每个功能name=“aleX”?:
a.移除name变量对应的值两边的空格,并输入移除后的内容?;
b.请输出name?变量对应的值的前3个字符;
c.将name变量对应的值分别变大写和小写,并输出结果;
d.请输出name变量对应的值的第2个字符;
e.请输出name变量对应的值中“e”所在索引位置;
输入代码:
from operator import index
name=" aleX "
print(name.strip())
name1=name.strip()
print(name1[0:3])
print(name.upper())
print(name.lower())
print(name1[0:2])
print(name.index(‘e’))
运行结果:
3.输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入“They?are?students.”和”aeiou”,则删除之后的第一个字符串变成”Thy?r?stdnts.”
—输入描述:每个测试输入包含2个字符串?
—输出描述:输出删除后的字符串?
输入代码:
a=input("请输入一行字符串A: ")
b=input("请输入您要替换的字符B: ")
c=" "
for i in a:
if i not in b or i==" ":
c+=i;
print(“输出结果为:”,c)
运行结果:
- 使用函数完成以下菜单功能:要求菜单中的每一个功能都要实现。
添加学生信息 保存学生信息
删除学生信息 修改学生信息
退出
输入代码:#_04
stuinfo = []
def main():
while True:
printMenu()
key = int(input('请输入对应功能的数字: '))
if key == 1:
addinfo()
elif key == 2:
deleteinfo()
elif key == 3:
modifyindo()
elif key == 4:
showinfo()
elif key == 5:
saveToFile()
elif key == 0:
quitConfirm = input('您真的要退出吗?(Yes o No): ')
if quitConfirm == ‘Yes’:
break
else:
print('输入有误,请重新输入')
打印功能提示
def printMenu():
print(’=’ * 30)
print(‘学生信息管理系统V1.0’)
print(‘1.添加学生信息’)
print(‘2.删除学生信息’)
print(‘3.修改学生信息’)
print(‘4.显示所有学生信息’)
print('5.保存数据')
print(‘0.退出系统’)
print(’=’ * 30)
添加学生信息
def addinfo():
newname = input(‘输入新学生的名字:’)
newsex = input(‘输入新学生的性别:’)
newphone = input(‘输入新学生的号码:’)
newInfo = {}
newInfo[‘name’] = newname
newInfo[‘sex’] = newsex
newInfo[‘phone’] = newphone
stuinfo.append(newInfo)
删除学生信息
def deleteinfo():
delNum = int(input('请输入要删除的序号: ')) - 1
del stuinfo[delNum]
修改学生信息
def modifyindo():
stuId = int(input('请输入要修改的学生序号: ')) - 1
newname = input(‘输入修改后学生的姓名:’)
newsex = input(‘输入修改后学生的性别:’)
newphone = input(‘输入修改后学生的电话:’)
stuinfo[stuId][‘name’] = newname
stuinfo[stuId][‘sex’] = newsex
stuinfo[stuId][‘phone’] = newphone
查询学生信息
def showinfo():
print(’=’ * 30)
print('学生信息如下:')
print(’=’ * 30)
i
= 1
for tempInfo in stuinfo:
print(’%d %s %s %s’
% (i, tempInfo[‘name’], tempInfo[‘sex’], tempInfo[‘phone’]))
i += 1
保存学生信息
def saveToFile():
f
= open(‘backup.data’, ‘w’)
f.write(str(stuinfo))
f.close()
main()
运行结果:
5.随机生成20个学生的成绩(1100);判断这20个学生成绩的等级(90100为A,80~90为B,其它为C)
输入代码:#_05
import random
p=[]
for i in range (1,21):
a=random.randint(1,100)
print(a,end=" ")
if(a>90):
print(“A”)
elif(a>80):
print(“B”)
else :
print(“C”)
运行结果:
- 现有两个数组:A=[11,22,33]?B={“aa”:1,“bb”:2,“cc”:4}
按上课内容完成不定长参数函数的定义及三种不同调用方式(非解包,只解包A,同时解包A、B)
输入代码:
A=[11,22,33]
B={“aa”:1,“bb”:2,“cc”:4}
def test(*arg1,**arg2):
print(arg1,end=" ")
print(arg2)
test()
test(A)
test(A,arg2=B)
test(arge=B)
运行结果:
- 使用时间函数获取当前时间,按格式“%Y-%m-%d?%H:%M:%S”输出。
输入代码:
from time import strftime, localtime
print(strftime(’%Y-%m-%d %H:%M:%S’,localtime()))
运行结果:
- 获取2019年6月?第一个星期一,第二个星期二,第三个星期三,第四个星期五的日期。打印结果如下图所示:?
输入代码:
#_08
import calendar
year =int(input(“请输入年”))
month =int(input(“请输入月”))
t=calendar.monthcalendar(year,month)
print(“第一个星期一是
6月”,t[1][0],“日”)
print(“第二个星期二是
6月”,t[2][1],“日”)
print(“第三个星期三是
6月”,t[3][2],“日”)
print(“第四个星期五是
6月”,t[4][4],“日”)
运行结果:
- 使用time函数获取当前时间的年份,月份及当天属于当前的第几天,属于当月的第几天,打印结果如下图所示:
输入代码:
#_09
import time
t=time.localtime()
print("当前年份
",t[0])
print("当前月份
",t[1])
month =[31,28,31,30,31,30,31,31,30,31,30,31]
num=0
temp_mon=int(t[1]) #当前月份
temp_day=int(t[2]) #当前天数
for i in range(0,temp_mon-1) :
num=num+month[i]
num=num+temp_day
print(“今天为今年的第”,num,“天”)
print(“今天为这月的第”,temp_day,“天”)
运行结果:
10.将日期"Sat?Mar?28?22:24:24?2016"字符串转换为“2016-03-28?22:24:24”形式显示
?
输入代码:
#_10
import time
import datetime
time=‘Sat Mar 28 22:24:24 2016’
time_format=datetime.datetime.strptime(time,’%a
%b %d %H:%M:%S %Y’)
print(time_format)
运行结果:
11.打印出所有1998~2019年之间所有闰年的年日历,年份之间以‘-’分割线分割,分割线宽度需要与日历宽度保持一致,且每个年份日历打印之前居中打印年份信息,具体如下图:
输入代码:
#_11
import calendar
def check(year_num):#判断是不是闰年
if year_num % 100 == 0:
if year_num % 400 == 0:
return True
else:
return False
else:
if year_num % 4 == 0:
return True
else:
return False
for t
in range (1998,2019) :
if check(t) :
print("------------------------------",t,“年日历-------------------------------”)
print(calendar.calendar(t,w=2,l=1,c=6))
print("-------------------------------------------------------------------------")
运行结果:(闰年:2000,2004,2008,2012,2016)
12.一辆旅游车去每个村庄游玩,每经过一个村子汽油消耗去所所剩汽油的一半又一升。这样他经过了七个村子后还剩两升油,问他出发时共加了多少油?经过每两个村子之间消耗了多少油?(要求必须使用递归函数)
输入代码:
#_12
def f(gas ,cnt,record,test) :
if cnt==0:
return gas
test.append((gas+1)*2)
if(len(record)==0):
record.append(((gas+1)*2))
else:
index=len(record)-1
record.append((gas+1)*2-test[index])
return f((gas+1)*2,cnt-1,record,test)
record=[]
test=[]
print(f(2,7,record,test))
record.reverse()
print(record)
运行结果: