python字符串及函数练习

1、输入一行字符,统计其中有多少个单词,每两个单词之间以空格隔开,并将输入字符按首字母大写居中,每个单词首字母大写左对齐,全小写,全大写右对齐的方式分别输出。如输入:This is a c++ program.输出:There are 5 words in the line.

a=input('请输入一行字符:')
print("This are",a.count(' ',0,len(a))+1,"words in the line")
print('首字母大写居中:',a.capitalize().center(50,'-'))
print('每个首字母大写左对齐:',a.title().ljust(50,'-'))
print('全小写右对齐:',a.lower().rjust(50,'-'))
print('全大写右对齐:',a.upper().rjust(50,'-'))

运行结果如下所示:
python字符串及函数练习_第1张图片
2、写代码,有如下变量,请按照要求实现每个功能,name=”aleX“
a、移除name变量对应的值两边的空格,并输出移除后的内容;b、请输出name变量对应的值的前3个字符;c、将name变量对应的值分别变成大写和小写,并输出结果;d、请输出name变量对应的值的第2个字符;e、请输出name变量对应的值中”e“所在索引位置。

name=' aleX '
print('取掉值两边的空格:',name.strip(' '))
print('取前三个字符:',name.strip(' ').rstrip('X'))
print('全部大写:',name.upper())
print('全部小写:',name.lower())
print('第2个字符:',name[1])
print('e所在索引位置:''',name.index('e'))

运行结果如下所示:
python字符串及函数练习_第2张图片
3、输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符,例如,输入“They are students.”和”aoeiu”,则删除之后的第一个字符串变成“Thy r stdnts.”

m=input("请输入字符串A:")
n=input("请输入字符串B:")
w=" "
for i in m:
    if i not in n or i==" ":
        w+=i
print("提出结果为",w)

运行结果如下所示:
python字符串及函数练习_第3张图片
4、使用函数完成以下菜单功能:要求菜单中的每一个功能都要实现;实现菜单中每个功能的函数及实现每个功能对应的运行结果。

stuInfos=[]
def printMenu():
    print("="*30)
    print("学生管理系统V1.0")
    print("1.增加学生信息")
    print("2.删除学生信息")
    print("3.修改学生信息")
    print("4.显示所有学生信息")
    print("0.退出系统")
    print("-" * 30)
    
#增加学生信息
def addstuInfo():
    result=getInfo()
    newInfo={}
    newInfo['name']=result[0]
    newInfo['sex'] = result[1]
    newInfo['phone'] = result[2]
    stuInfos.append(newInfo)
    print("已添加成功")
    
#修改学生信息
def modifyStuInfo():
    stuId=int(input("请输入要修改的学生序号:"))
    getInfo()
    stuInfos[stuId-1]['name']=newName
    stuInfos[stuId - 1]['sex'] = newSex
    stuInfos[stuId - 1]['phone'] = newPhone
    print("已修改成功")
    
#删除学生信息
def del_info(student):
    del_number = int(input("请输入要删除的序号:")) - 1
    del student[del_number]
    print('已删除成功')
    
#获取学生信息
def getInfo():
    global newName
    global newSex
    global newPhone
    newName=input("请输入学生的姓名:")
    newSex=input("请输入学生的性别:")
    newPhone=input("请输入学生的电话:")
    return [newName,newSex,newPhone]
    
def main():
    while True:
        printMenu()
        key=input("请输入你要选择的操作:")
        if key=='0':
            exit()
        elif key=='1':
            addstuInfo()
        elif key=='2':
            del_info(stuInfos)
        elif key=='3':
            modifyStuInfo()
        elif key=='4':
            print("="*30)
            print("学生的信息如下:")
            print("序号 姓名 性别 手机号码")
            i=1
            for tempInfo in stuInfos:
                print("%d  %s  %s  %s"%(i,tempInfo['name'],
                       tempInfo['sex'],tempInfo['phone']))
                i+=1
        else:
            print('输入有误,请重新输入!')
            
main()

分别进行运行增删改查等操作,显示效果如下所示:
python字符串及函数练习_第4张图片
python字符串及函数练习_第5张图片
python字符串及函数练习_第6张图片
python字符串及函数练习_第7张图片
5、随机生成20个学生的成绩(1-100),判断这20个学生成绩的等级为(90-100为A,80-90为B,其他为C)。

import random
def get_level(score):
    if 90 < score <= 100:
        return 'A'
    elif 80 < score <= 90:
        return 'B'
    else:
        return 'C'
for i in range(1,21):
    score = random.randint(1,100)
    print('第',i,'个学生'"成绩为%s, 等级为%s"
          %(score,get_level(score)))

6、现有两个数组:A=[11,22,33],B={“aa”:1, “bb”:2, “cc”:3},按上课内容完成不定长参数的定义及三种不同调用方式(非解包,只解包A,同时解包A、B)。

def test(a,b,*args,**kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)
    return 'k'
A=[11,22,33]
B={'aa':1,'bb':2,'cc':3}
print('---------------非解包---------------')
test(11,22,A,B)
print('-'*40)
test(11,22,A,k=B)
print('---------------只解包A---------------')
test(11,22,*A,B)
print('------------同时解包A、B-------------')
test(11,22,*A,**B)

运行结果如下所示:
python字符串及函数练习_第8张图片
7、使用时间函数获得当前时间,按格式”%Y-%m-%d %H:%M:%S”输出。
python字符串及函数练习_第9张图片
8、获取2019年6月,第一个星期一,第二个星期二,第三个星期三,第四个星期五的日期,打印结果如下图所示:

import calendar
y=int(input('请输入年份:'))
m=int(input('请输入月份:'))
m_d_list=calendar.monthcalendar(y,m)
print(m_d_list)
if m_d_list[0][0]==0:
    print(str(y)+'第一个星期一为'+str(m)+'月',m_d_list[1][0],'号')
else:
    print(str(y)+'第一个星期一为'+str(m)+'月',m_d_list[0][0],'号')
if m_d_list[0][1]==0:
    print(str(y)+'第二个星期二为'+str(m)+'月',m_d_list[2][1],'号')
else:
    print(str(y)+'第二个星期二为'+str(m)+'月',m_d_list[1][1],'号')
if m_d_list[0][2]==0:
    print(str(y)+'第三个星期三为'+str(m)+'月',m_d_list[3][2],'号')
else:
    print(str(y)+'第三个星期三为'+str(m)+'月',m_d_list[2][2],'号')
if m_d_list[0][4]==0:
    print(str(y)+'第四个星期五为'+str(m)+'月',m_d_list[4][4],'号')
else:
    print(str(y)+'第四个星期五为'+str(m)+'月',m_d_list[3][4],'号')

运行结果如下所示:
python字符串及函数练习_第10张图片
9、使用time函数获取当前时间的年份,月份及当天属于当前的第几天,属于当月的第几天,打印结果如下图所示:

import time
print('当前时间年份',time.gmtime().tm_year)
print('当前时间月份',time.gmtime().tm_mon)
print('今天为今年的第',time.gmtime().tm_yday,'天')
print('今天为这月的第',time.gmtime().tm_mday,'天')

运行结果如下所示:
python字符串及函数练习_第11张图片
10、将日期“Sat Mar 28 22:24:24 2016”字符串转换为”2016-03-28 22:24:24”的形式显示

import time
x=time.strptime('Sat Mar 28 22:24:24 2016','%a %b %d %H:%M:%S %Y')
y=time.strftime('%Y-%m-%d %H:%M:%S',x)
print('原:Sat Mar 28 22:24:24 2016')
print('转换后',y)

运行结果如下所示:
python字符串及函数练习_第12张图片
11、打印出所有1998~2019年之间所有闰年的年日历,年份之间以‘-’分割线分割,分割线宽度需要与日历宽度保持一致,且每个年份日历打印之前居中打印年份信息,具体如下图所示:

import calendar
i=0
for i in range(1998,2019):
    if calendar.isleap(i):
        print((str(i)+'年日历').center(21*2_18+2*6,'-'))
        calendar.prcal(i)
        print('-'*(21*2+18+2*6+3))

python字符串及函数练习_第13张图片
12、一辆旅游车去每个村庄游玩,每经过一个村子汽油消耗去所所剩汽油的一半又一升。 这样他经过了七个村子后还剩两升油,问他出发时共加了多少油?经过 每两个村子之间消耗了多少油?(要求必须使用递归函数)

def transation(duck,village):
    if village==1:
        print('总共有'+str(duck)+'升油')
        return  duck
    else:
        duck1=(duck+1)*2
        print('第'+str(village-1)+'个村庄到第'+str(village)+'村庄之间消耗'+str(duck)
              +'升油','剩余'+str(int(duck1/2-1))+'升油')
        return transation(duck1,village-1)
transation(2,7)

运行结果如下所示:
python字符串及函数练习_第14张图片

你可能感兴趣的:(Python)