Python基础练习题目1

1.利用range函数生成10以内(不包含10)数字,并用for循环依次输出。

for i in range(1, 10):
    print(i)

2.有players = [‘charles’,‘martina’,‘michael’,'florence,‘eli’]列表,请将列表中元素的首字母大写后依次输出。

players = ['charles','martina','michael','florence','eli']
for item in players:
    print(item.capitalize())

3.有列表cars = [‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]。遍历该列表,输出各个元素,要求将‘bmw’所有首字母大写。其余首字母大写。

cars = ['audi', 'bmw', 'subaru', 'toyota']
for item in cars:
    if item == 'bmw':
        print(item.upper())
    else:
        print(item.capitalize())

4.有available_toppings = [‘mushrooms’, ‘olives’, ‘green peppers’, ‘pepperoni’, ‘pineapple’, ‘extra cheese’] 与requested_toppings = [‘mushrooms’, ‘french fries’, ‘extra cheese’]两个列表,请判断requested_toppings中的元素是否在avaialbe_toppings列表中,如果存在,输出’yes’,否则输出’no’。

available_toppings = ['mushrooms', 'olives', 'green peppers', 'pepperoni', 'pineapple', 'extra cheese']
requested_toppings = ['mushrooms', 'french fries', 'extra cheese']
for item in requested_toppings:
    if item in available_toppings:
        print('yes')
    else:
        print('no')

5.在星际大战游戏中,外星飞机水平移动距离与其速度类型直接相关其中,'slow’类型,飞机x轴每秒移动1个距离,'medium’类型,飞机x轴每秒移动2个距离,'fast’类型,飞机x轴每秒移动3个距离。请计算飞机alien_0 = {‘x_position’:0,‘y_position’:25, ‘speed’:‘medium’}飞行3秒后的位置,并对其位置进行修改,并输出新的横纵坐标位置。

alien_0 = {'x_position':0,'y_position':25, 'speed':'medium'}
def check_x(alien_0):
    if alien_0['speed'] == 'slow':
        alien_0['x_position'] += 3
    elif alien_0['speed'] == 'medium':
        alien_0['x_position'] += 6
    else:
        alien_0['x_position'] += 9
check_x(alien_0)
print(alien_0['x_position'])

6.有学生喜欢编程语言的字典favorite_languages = {‘jen’:‘python’, ‘sarch’:‘c’, ‘edward’:‘ruby’, ‘phil’:‘python’}, 请输出朋友列表friends = [‘phil’, ‘sarch’]中每个朋友所喜欢的编程语言。

def love(f):
    favorite_languages = {'jen': 'python', 'sarch': 'c', 'edward': 'ruby', 'phil': 'python'}
    for item in f:
        if item in favorite_languages:
            print(item,':',favorite_languages[item])

friends = ['phil', 'sarch']
love(friends)

7.有某类披萨pizza = {‘crust’:‘thick’, ‘toppings’:[‘mushrooms’, ‘extra cheese’]} 请依次输出这个披萨的佐料(toppings)。

pizza = {'crust':'thick', 'toppings':['mushrooms', 'extra cheese']}
for item in pizza['toppings']:
    print(item)

8.某人买了4只股票,编号1~4,股票代码、股票名称和买入价分别是:601398、工商银行、5.51;000001、平安银行、8.94;601939、建设银行、6.89;601328、交通银行、5.61。请用字典实现根据编号查询购买的股票信息。要求:输入编号,可以一直查询购买的股票信息,直到输入编号以外的任意数字显示“无查询结果”,并结束程序。

st = {'1':['601398', '工商银行', '5.51'], '2':['000001', '平安银行', '8.94'],
      '3':['601939', '建设银行', '6.89'], '4':['601328', '交通银行', '5.61']}
while True:
    id = input('请输入编号:')
    if id in st:
        print(st[id])
    else:
        print('无查询结果')
        break

9.假设姓名不重复,现有若干同学的姓名和成绩组成键值对存放在字典stu中。stu={“张林”:58,“孙志平”:70“徐小伟”:89,“徐丽萍”:69,“童万丽”:90,“钱志敏”:84,“赵虚宇”:64},请编程如下任务:
(1)在字典中添加姓名为晋宇浩的同学,成绩显示为缺考。
(2)张林的成绩改为60。
(3)删除徐小伟以及她的成绩。
(4)显示原有字典和现有字典。
(5)统计当前总人数。
(6)从键盘输入一个同学的姓名,显示该同学的成绩,如字典中无法显示“没找到该同学”。

stu={'张林':58,'孙志平':70,'徐小伟':89,'徐丽萍':69,'童万丽':90,'钱志敏':84,'赵虚宇':64}
stu2 = stu.copy() #复制字典
stu['晋宇浩'] = '缺考'#添加键值对
stu['张林'] = 60 #张林的成绩改为60
del stu['徐小伟']  #删除徐小伟以及她的成绩
print(stu2)#显示原有字典
print(stu)#显示现有字典
print(len(stu))#统计字典元素个数
name = input('请输入姓名:') #从键盘输入一个同学的姓名,显示该同学的成绩,如字典中无法显示“没找到该同学”
print(stu.get(name,'没找到该同学'))

10.有5位参会的unconfirmed_users = [‘alice’, ‘brian’, ‘candace’, ‘ben’, ‘mike’], 编写程序确定参会的人员名单,具体要求,输入确认参会人的名字,将参会人从unconfirmed_users中移除,添加至参会列表confirmed_users中,直至输入ii停止(不区分大小写),最后输出确认参会的人员名单与没有确认参会的人员名单。

unconfirmed_users = ['alice', 'brian', 'candace', 'ben', 'mike']
confirmed_users = []
while True:
	name = input('请输入姓名:')
	if name.upper() == 'II':
		break
	else:
		if name in unconfirmed_users:
			confirmed_users.append(name)
			unconfirmed_users.remove(name)
		else:
			print('输入有误,请重新输入')
print(confirmed_users)
print(unconfirmed_users)

第二部分

1.编写函数实现如下功能:
(1)将英文名字中的first name, middle name与last name传递给函数,函数能够拼接英文名全称;
(2)middle name可以传递值,也可以不传值;
(3)利用该函数分别输出’jimi’, ‘hendrix’, 与 ‘john’, ‘hooker’, 'lee’的全称;

def Name(first_name, last_name, middle_name=''):
	print(first_name+middle_name+last_name)
#调用函数
Name('jimi', 'hendrix')
Name('john', 'lee', 'hooker')

2.编写函数判断输入数字是奇数还是偶数,当输入’no’(不区分大小写)时判断结束。

#本题目注意将x墙强转为int型
def check():
	while True:
		x = (input('请输入数字:'))
		if x.upper() == 'NO':
			break
		if int(x)%2 == 0:
			print('该数字为偶数。')
		else:
			print('该数字为奇数。')
check()

3.有作者列表usernames = [‘hannah’, ‘ty’, ‘nargot’], 编写函数,以列表位参数,为每位作者分配房间(房间号从100开始,依次分配)。

usernames = ['hannah', 'ty', 'nargot']
i = 100
for item in usernames:
	print('{}{}{}'.format(item,'的房间号为:',i))
	i+=1

4.有作者列表 author = [{‘name’:‘ben’, ‘gender’ = ‘m’}, {‘name’:‘alex’, ‘gender’ = ‘f’}, {‘name’: ‘mike’, ‘gender’ = ‘m’}], 编写函数根据作者性别分配房间,其中男性分配偶数号房间,女性分配奇数号房间(房间号从100开始依次分配)。
5.有科学家信息如下(‘albert’, ‘einstein’, location = ‘princetion’, field = ‘physics’), 其中前两个元素分别为first 与last name,编写函数,接收该以上信息返回作者完全信息的字典(‘first name’ = ‘albert’, ‘last name’ = ‘elinstein’, …)。

6.编写函数实现打印pizza信息,信息包括名称,尺寸与不定长度的辅料(水果与配菜等等)。
7.编写函数,求三位水仙花数(依次传值判断与一次性全部求出均可)。

def flower(n):
	g = list(str(n))
	if int(g[0])**3 + int(g[1])**3 + int(g[2])**3 == n:
		print(n)
for i in range(100, 1000):
	flower(i)

8.编写函数,能将华氏温度转换成摄氏温度。换算公式:C = (F-32)*5/9,其中C为摄氏温度,F为华氏温度。

def change(f):
	c = (f-32)*5/9
	print("华氏温度{}转换为摄氏温度为:{}".format(f, c))
change(100)

9.某公司股票近一段时间的收盘价(单位:元)分别为:12.04, 11.15, 13.47, 13.58, 12.04, 11.15, 12.58, 11.15,请建立一个列表(data)存储这些数据。请编写’函数’解决如下问题:(1)上述一共有几个数据?
(2)统计收盘价为12.04的次数;
(3)找出收盘价中的最小数据,并删除首次出现的

data = [12.04, 11.15, 13.47, 13.58, 12.04, 11.15, 12.58, 11.15]
def f(data):
	print('{}{}{}'.format('共有', len(data), '个数据。'))
	print('{}{}'.format('列表中12.04出现的次数为:',data.count(12.04)))
	#remove() 函数用于移除列表中某个值的第一个匹配项。
	min_data = min(data)
	print('{}{}'.format('列表中最小的数据为:', min_data))
	data.remove(min_data)
	#print(data)
f(data)

10.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 7 天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天摘了多少个桃子。

'''
问题分析:

我们设 第一天的桃子个数为:x

第二天的桃子个数为:y

则 二者的关系为:y=x/2-1;

那么,我们可以看出第十天和第九天有什么关系?

我们可以看出:第九天也可以设为x,

第十天设为y.

则  二者的关系依然是  y=x/2-1;

如果我们反过来看:就是 x=(y+1)*2

所以可以看出:当第九天时,有多少个桃子?就是x=(1+1)*2=4个   对吧!
'''
def f(i):
	if i == 1:
		return 1
	return (f(i-1)+1)*2
print(f(7))
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐