PYTHON实验

PYTHON第一次实验(自用)

实验1 环境配置

一、****实验目的****

熟悉掌握Python解释器安装与基本用法熟练使用pip命令在线安装Python扩展库的方法熟练掌握通过WHL文件离线安装Python扩展库的方法

二、****实验内容****

安装Python解释器简单安装Python开发环境安装Python 扩展库

三、****实验步骤****

打开python官方往网站:http://www.python.org下载跟自己电脑匹配的版本(建议3.x系列)使用pip命令在线安装python扩展库numpy、pandas、scipy、openpyxl。如果遇到安装不成功的扩展库,使用浏览器打开下面的网站下载对应的whl文件进行离线安装:http://www.lfd.uci.edu/~gohlke/pythonlibs/注意:选择正确的版本;下载时不能修改文件名;把下载的whl文件放到相应版本的Python安装目录下scrips文件夹中执行匹配离线安装扩展库

这样下载速度慢,可以通过清华源下载

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx

有关添加环境变量:

(46条消息) ‘pytest 不是内部或外部命令,也不是可运行的程序 或批处理文件。WARNING: The scripts pip.exe, pip3.8.exe and pip3.exe are install_sophiasofia的博客-CSDN博客


实验2 Python 运算符、内置函数、序列用法

一、 *实验目的*

(1) 熟悉运用Python运算符

(2) 熟练运用Python内置函数

(3) 养成对用户输入立即进行类型转换的习惯

(4) 了解lanbda表达式作为函数参数的用法

(5) 了解列表、元组、字典、集合的概念和基本用法

(6) 了解Python函数式编程模式

二、 *实验内容*

(1) 编写程序,输入任意大的自然数,输出各位数字之和。
a=input('请输入一个数:')
all_sum=0
for i in a:
    all_sum=all_sum+int(i)
print(all_sum)
(2) 编写程序,输入两个集合setA和setB,分别输出它们的交集、并集和差集。

集合的一些基础操作:

可以使用大括号 { } 或者 set() 函数创建集合
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
print(a - b)     # a 和 b 的差集
print(a | b)     # a 和 b 的并集
print(a & b)     # a 和 b 的交集
print(a ^ b)     # a 和 b 中不同时存在的元素

实验代码:

seta=set(input('请输入一个集合:'))
setb=set(input('请输入一个集合:'))
jiao=set()
bing=set()
cha=set()
jiao=seta&setb
bing=seta|setb
cha=seta-setb
print('交集:'+str(jiao))
print('并集:'+str(bing))
print('差集:'+str(cha))
(3) 编写程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式。

进制表示:

bin()二进制
oct()八进制
int()十进制
hex()十六进制

实验代码:

a=int(input('请输入一个自然数:'))
print("二进制为:",bin(a))
print("八进制为:",oct(a))
print("十进制为:",int(a))
print("十六进制为:",hex(a))
'''
注意报错:TypeError: 'str' object cannot be interpreted as an integer
原因:原因是因为n=input()接收的值为字符串类型
'''
(4) 编写程序,输入要给包含若干整数的列表,输出一个新列表,要求新列表中之包含原列表中的偶数。
a=list(input('请输入一个列表:'))
newa=list()
for i in a:
        if int(i)%2==0:
                newa.append(i)
print(newa)
"""
同样要注意int()转换
"""
(5) 编写程序,输入两个分别包含若干整数的列表lstA和lstB,输出一个字典,要求使用列表lstA的元素作为键,列表lstB中的元素作为值,并且最终字典中的元素数量取决于两个列表中元素最少的列表的数量

有关zip的解释:(46条消息) Python-zip()函数_Death Note-CSDN博客_python zip

lstA=list(input('请输入一个列表:'))
lstB=list(input('请输入一个列表:'))
dica=dict(zip(lstA,lstB))
print(dica)
(6) 编写程序,输入一个包含若干整数的列表,输出新列表,要求新列表中的所有元素来自于输入的列表,并且降序排列

排序方法:(46条消息) Pyhon列表排序(升序和降序)_探索测试-CSDN博客_python升序排列

reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)

a=list(input('请输入一个列表:'))
print('排序前:',a)
a.sort(reverse=True)
print('排序后:',a)
(7) 编写程序,输入要给包含若干整数的列表,输出列表中所有整数连乘的结果。
a=list(input('请输入一个列表:'))
sumall=1
for i in a:
    sumall=sumall*int(i)
print(sumall)
(8) 编写程序,输入两个各包含2个整数的列表,分别表示城市中两个地点的坐标,输出两点之间的曼哈顿距离。
lst1=list(input('请输入一个包含两个整数的列表:'))
lst2=list(input('请输入一个包含两个整数的列表:'))
distance=abs(int(lst1[0])-int(lst2[0]))+abs(int(lst1[1])-int(lst2[1]))
print('两点之间的曼哈顿距离为:',distance)
(9) 编写程序,输入包含若干集合的列表,输出这些集合的并集。要求使用reduce()函数和lanbda表达式。
reduce()函数接收的参数:一个函数 f,一个list
reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

调用reduce需要import functools库

有关eval函数的介绍:(46条消息) python中的eval函数的使用详解_涤生手记大数据-CSDN博客_python中eval函数怎么用

from functools import reduce
lst1=eval(input('请输入一个列表:'))
print(reduce(lambda x,y:x|y,lst1))

这样做会报错

必须要用eval函数将它转换成真正所需要的列表

from functools import reduce
a=eval(input('请输入一个包含集合的列表:'))
print(reduce(lambda x,y:x|y,a))
(10) 编写程序,输入等比数列的首项,公比(不等于1且小于36的正整数)和一个自然数n,输出这个等比数列的前n项的和。关键步骤要求使用内置函数int()。
a=int(input('请输入等比数列的首项:'))
b=int(input('请输入等比数列的公比:'))
c=int(input('请输入等比数列的项数:'))
i=0
sum1=0
while i < c:
    sum1=sum1+a
    a=a*b
    i=i+1
print(sum1)
(11) 编写程序,输入一个字符串,输出其中出现次数最多的字符及其出现的次数,要求使用字典完成。

访问字典里的值:将相应的键放到方括号里

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

字典get函数的用法:(46条消息) python字典D.get()函数解析(最清晰的解释)_种树最好的时间是10年前,其次是现在!!!-CSDN博客

values函数的用法:(46条消息) python字典函数values(),keys(),items()的用法与区别_Zhongjie1986的博客-CSDN博客

str1=input('请输入一个字符串:')
d=dict()
i=0
while i<len(str1):
    if str1[i] in d:
        d[str1[i]]+=1
    else:
        d[str1[i]]=1
    i=i+1
tms=max(d.values())
print('出现的最多次的字符是:')
for key,value in d.items():
    if(value == tms):
        print(key)
print()
print('出现的最多次的字符是:')
print(tms)

实验3 使用蒙特卡洛方法计算圆周率近似值

一、 *实验目的*

(1) 理解蒙特卡洛方法原理

(2) 熟练使用内置函数input接受用户输入

(3) 养成对用户输入立即进行类型转换的习惯

(4) 熟练使用for循环控制循环次数

(5) 理解for循环的本质与工作原理

(6) 了解random模块中的常用函数

二、 *实验内容*

蒙特卡洛方法是一种通过概率统计来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值得计算问题。

假设有一块变成为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落在木板上(更多的时候是落在单位圆内容),投扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。

要求编写程序,模拟蒙塔卡洛计算圆周率近似值的方法,输入扔的次数,然后输出圆周率近似值。观察实验结果,理解实验结果随着模拟次数增多越来越接近圆周率的原因。

import random
import math

n=int(input('请输入模拟次数:'))
times=0#在圆内的次数
#生成[-1,1]的随即小数:random.uniform(-1,1)
for i in range(n):
    x=random.uniform(-1,1)
    y=random.uniform(-1,1)
    if(pow(x,2)+pow(y,2)<=1):
        times=times+1
pai=4*times/n
print(pai)
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值