Python基础函数的编写

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)

运行结果:

在这里插入图片描述

  1. 使用函数完成以下菜单功能:要求菜单中的每一个功能都要实现。

添加学生信息 保存学生信息

删除学生信息 修改学生信息

退出

输入代码:#_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”)

运行结果:

在这里插入图片描述

  1. 现有两个数组: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)

运行结果:

在这里插入图片描述

  1. 使用时间函数获取当前时间,按格式“%Y-%m-%d?%H:%M:%S”输出。

输入代码:

from time import strftime, localtime

print(strftime(’%Y-%m-%d %H:%M:%S’,localtime()))

运行结果:

在这里插入图片描述

  1. 获取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],“日”)

运行结果:

在这里插入图片描述

  1. 使用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)

运行结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43306493/article/details/92762929