Python实验报告二

实验二:Python运算符、内置函数和列表、元组的基本用法(2)
1、实验目的
1)熟练应用Python运算符和内置函数;
2)养成对用户输入立即进行类型转换的习惯;
3)了解列表、元组的概念和基本用法
2、实验环境
Python3.8
3、实验内容
1)编写程序,输入一个包含若干整数的列表,输出新列表,要求新列表中所有元素为
原列表的降序排列,使用sorted()函数。

>>> x=[2,5,6,9,7,78,39,156]
>>> sorted(x,reverse=True)
[156, 78, 39, 9, 7, 6, 5, 2]

sorted()函数格式:

sorted(iterable, cmp=None, key=None, reverse=False)

iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定;
key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值(默认为升序)。
返回值:是一个经过排序的可迭代类型,与iterable一样。

参数说明:
(1) cmp参数
cmp接受一个函数,拿整形举例,形式为:
def f(a,b):
return a-b
如果排序的元素是其他类型的,如果a逻辑小于b,函数返回负数; a逻辑等于b,函数返回0; a逻辑大于b,函数返回正数就行了

(2) key参数
key也是接受一个函数,不同的是,这个函数只接受一个元素,形式如下
def f(a):
return len(a)
key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序

(3) reverse参数
接受False 或者True 表示是否逆序

(摘抄自https://www.cnblogs.com/sysu-blackbear/p/3283993.html)

另外详见可转载

2)编写程序,输入一个包含若干整数的列表,输出新列表,要求输出列表中所有整数
连乘的结果。

>>> x=[1,96,9,3,9,89]
>>> from functools import reduce
>>> n=reduce(lambda x,y:x*y,x)
>>> print(n)
2076192

reduce()函数详见转载

lambda ()匿名函数详见转载

3)编写程序,输入两个各包含两个整数的列表,分别表示城市中两个地点的坐标,输
出两点间的曼哈顿距离。

曼哈顿距离百度百科

x=eval(input("请输入第一个坐标:"))
y=eval(input("请输入第二个坐标:"))
def ManhadunDistance(x,y):
    return sum(map(lambda i,j:abs(i-j),x,y))
print("两点间的曼哈顿距离为:",ManhadunDistance(x,y))

(代码摘抄自Python书上)

在这里插入图片描述

4)编写程序,输入等比数列的首项和公比(不等于1且小于36的正整数)和自然数n,
输出这个等比数列前n项的和。要求用内置函数int()。

a1=int(input("请输入首项(不等于1且小于36的正整数)a1="))
q=int(input("请输入公比(不等于1且小于36的正整数)q="))
n=int(input("请输入项数n="))
s=int((a1*(1-q**n))/(1-q))
print("前%d项和为:"%n,s)

在这里插入图片描述
int()函数详见转载

5)设计一个程序,使用户输入摄氏度,能输出华氏度;反之,输入华氏度,能输出摄
氏度。例如:输入“-30C”,输出“-22.00F”;输入“82F”,输出“27.78C”

#华氏度和摄氏度对应公式:F=32+1.8*C
temp=input("请输入一个温度(摄氏度C/华氏度F):")
if temp[-1]in['F','f']:
    #['F', 'f'] 列表类型,表示实际两个元素F和f
    #用temp[-1]表示获取temp这样一个变量字符串的倒数第一个字符
    C=(eval(temp[0:-1])-32)/1.8
    #temp[0:-1]表示从0开始但不到字符串的最后一个字符的字符子串
    print("对应的摄氏度为:{:.2f}C".format(C))
elif temp[-1]in['C','c']: 
    F=1.8*eval(temp[0:-1])+32
    print("对应的华氏度为:{:.2f}F".format(F))
else: 
            print("输入格式有误")
#使用保留字if elif else 构成条件判断的分支结构,注意“:”是语法的一部分

在这里插入图片描述

知识点:
变量[0:-1] 表示返回此变量字符串从0开始但不到-1的字符段。相当于去掉末尾输出;
变量[1:] 相当于去掉第一个字符输出;
format()函数的基本用法是:
{} 和 : 来代替以前的 %。可以接受不限个参数,位置可以不按顺序。
eg:
a="{} {}".format{“hello”,“world”}
print(a)
输出的则为 hello world
%.af表示输出保留小数点后a位,并且考虑四舍五入(f指的是浮点型)
eval() 函数用来执行一个字符串表达式,并返回表达式的值。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值