四川师范大学计算机导论python实验报告部分
实验 一 Python基本数据类型和列表
一.实验目的及要求
(1)了解Python语言的基本数据类型。
(2)掌握Python语言基本数据类型的使用方法。
(3)掌握Python语言中列表的使用方法。
(4)编写实验报告。
二.实验内容
(1)产生10-20的随机整数。
(2)产生10-20的随机浮点数。
(3)编程实现除去列表L中所有是x的元素。
(4)编程用L.insert(i, x)实现L.append(x)。
三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)
(1) 生成10~20的随机整数:
实验代码:
import random
print(random.randint(10,20))
(2) 生成10-20的浮点数
实验代码:
import random
print(random.uniform(10.0,20.0))
(3) 编程实现除去列表L中所有是x的元素。
L=[1,1,2,3,4,5,6,7,7,8]
print("原始数组为:",L)
print("输入需要删除元素:")
a=int(input())
if a in L:
while a in L:
L.remove(a)
print("处理后的数组为",L)
else:
print("输入的元素在数组中不存在")
一.实验结果的分析与评价(该部分如不够填写,请另加附页)
? 实验分析:本次实验需要注意的地方有(1)在使用random随机生成函数之前,需要提前声明使用了random库,要用import引入,负责将无法使用。(2)进行操作的数据的数据类型必须正确,否则程序会报错(3)注意python是对缩进严格的,需要注意空格。(4)if-else于C语言不同,后面要带”:”,不然会报错。
实验 二 Python字符串操作
一.实验目的及要求
(1)掌握Python语言中字符串的使用方法。
(2)编写实验报告。
二.实验内容
(1)输入一个字符串,内容是带小数的实数,例如“123.45”,输出是两个整数变量x和y,x是整数部分123,y是小数部分45。可以使用split函数实现。
(2)写Python程序find(s,x)来完成s.find()函数的基本功能。计算x字符串在s字符串中出现的开始位置。x没有在s出现的话,传回-1。
(3)在find()的基础上,写Python程序来完成replace(s,old,new)函数的功能。将所有在s中出现的old字符串转换成new字符串。
(4)在find()的基础上,写Python程序来完成count(s,x)函数的基本功能。计算所有在s中出现的x字符串的个数。注意:算x出现的个数时每一个字符不能重复计算。例如:s=”222222”,count(s,”222”)是2,不是4。
三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)
(1)
s=input("输入带小数的数字:")
s=s.split(".")
print(int(s[0]),int(s[1]))
(2)
def find(s, x):
L = list(s)
X =list(x)
i=j=0
while(i<len(L) and j<len(X)):
if(L[i]==X[j]):
i+=1
j+=1
else:
i=i-j+1
j=0
if(j==len(X)):
return i-len(X)
else:
return -1
a=input("请输入一个字符串")
b=input("输入一个字符串")
print(find(a,b))
(3)
def find(s, x):
L = list(s)
X =list(x)
i=j=0
while(i<len(L) and j<len(X)):
if(L[i]==X[j]):
i+=1
j+=1
else:
i=i-j+1
j=0
if(j==len(X)):
return i-len(X)
else:
return -1
def repalce(s,old,new):
s=list(s)
old=list(old)
new=list(new)
leno=len(old)
lenn=len(new)
i=find(s,old)
if(i==-1):
print("子串不存在")
else:
for j in range(0,lenn):
s[i]=new[j]
i+=1
j+=1
s=''.join(s)
print(s)
a=input("请输入一个字符串")
b=input("输入一个字符串")
c=input("请输入一个字符串")
repalce(a,b,c)
(4)
def count(s,x):
if s.find(x) == -1:
return 0
L = s.split(x)
return len(L)-1
s=input("请输入一个字符串")
x=input("请输入一个字符串")
i=count(s,x)
print(i)
实验 三 Python控制结构
一.实验目的及要求
(1)掌握Python语言中的三种控制结构。
(2)掌握if语句,while循环语句和for循环语句的使用方法。
(3)编写实验报告。
二.实验内容
(1)给出一个Python程序段,用for循环,求解1到100的和。
(2)给出一个Python程序段,用for循环,用print语句输出1到100的奇数。
(3)写Python程序,有x,y,z三个数,将这三个数从小到大print出来。要求使用if语句。
(4)编写一个Python程序,实现冒泡排序。
三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)
(1)
def count():
sum=0
for i in range(1,101):
sum+=i
i+=1
return sum
res=count()
print(f'1到100之和为{res}')
(2)
def cout():
prime=1
for i in range(1,101):
if(prime<100):
print(prime)
prime+=2
i+=1
cout()
(3)
def compare():
print("请输入一个数:")
a=int(input())
print("请输入一个数:")
b=int(input())
print("请输入一个数:")
c=int(input())
if a>b:
a,b=b,a
if a>c:
a,c=c,a
if b>c:
b,c=c,b
print(a,b,c)
compare()
(4)
def sort(a):
for j in range(len(a)-1):
for i in range(len(a)-1):
if(a[i]>a[i+1]):
l=a[i+1]
a[i+1]=a[i]
a[i]=l
return a
print("请输入一个数组")
a=list(input())
sort(a)
for i in a:
if i==' ' or i=='\n':
a.remove(i)
a.remove(' ')
print(a)
五.实验结果的分析与评价(该部分如不够填写,请另加附页)
Python里面的循环有for循环,do while循环,while循环,控制语句有if else语句和elif语句,使用时要注意自己的实验目的和跳出条件。否则很容易造成死循环
实验 四 Python函数调用和递归
一.实验目的及要求
(1)掌握Python语言中定义函数的方法。
(2)理解Python函数调用的过程。
(3)掌握递归的基本思想。
(4)编写实验报告。
二.实验内容
(1)请使用Python语言编写递归函数,实现十进制数到R进制的转换,且2≤R<10。
(2)请用Python语言编写一个简单的把二进制小数转换为十进制小数的程序。要求输入一个二进制小数,例如输入“0.1011”,代表二进制小数0.10112,输入相应的十进制小数。
(3)请编写一个Python程序,用“四位一并法”实现二进制整数到十六进制整数的转换。要求程序输入一个二进制整数,输出一个相应的十六进制整数。
(4)完成merge(L1, L2) 函数:输入参数是两个从小到大排好序的整数列表L1和L2,返回合成后的从小到大排好序的大列表X。例如:merge([1, 4, 5], [2, 7])会返回[1, 2, 4, 5, 7];merge([ ], [2, 3, 4])会返回[2, 3, 4]。
三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)
(1):
def change(di, R):
i = 0
a=[]
if R >= 10 or R < 2:
print('R的数值不对')
else:
if di < R:
return di
else:
while di !=0:
a.append(di % R)
i += 1
di//=R
return a
print("请输入十进制数:", end='')
a = int(input())
print("请输入欲转化为R进制数:", end='')
b = int(input())
c = change(a, b)
c.reverse()
print(c)
(2)
def bin2dec(s):
a,b=s.split('.')
decimal =0
for i in range(len(b)):
decimal+=2**(-i-1)*int(b[i])
return decimal
s=input("输入二进制小数:")
print(bin2dec(s))
(3)
def f(n,x):
a=[0,1,2,3,4,5,6,7,8,9,'A','b','C','D','E','F']
b=[]
c=""
while True:
s=n//x
y=n%x
b=b+[y]
if s==0:
break
n=s
b.reverse()
for i in b:
print(a[i],end='')
S = input("input a bri_number:")
b = int(S,2)
f(b,16)
(4)
def merge(L1,L2):
L=[]
L.extend(L1)
L.extend(L2)
L.sort()
return L
a=input("请输入一个已排好序的数组")
b=input("请输入另一个已排好序的数组")
L=merge(a,b)
print(L)
四.实验结果的分析与评价(该部分如不够填写,请另加附页)
掌握了Python语言中定义函数的方法。理解了Python函数调用的过程。掌握了递归的基本思想.
实验 五 Python的文件操作
一.实验目的及要求
(1)掌握Python语言的文件操作方法。
(2)编写实验报告。
二.实验内容
(1)从键盘接收十行输入(使用input),然后将输入保存到文件中。(提示:由于input()不会保留用户输入的换行符,调用write()方法时必须加上换行符。)
(2)假设一篇英文文章存储在文件paper.txt中,请统计每个单词在文章中出现的次数。
(3)请分割文件paper.txt,假设该文件共有n行(n未知)数据,请将前n/2行数据写入paper1.txt,后n/2行数据写入paper2.txt。(提示:首先需要确定paper.txt文件的总行数,然后可以考虑使用切片,以及writelines方法实现写入。)
三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)
(1)
f=open("task.txt","w")
for i in range(0,10):
print("the NO.%d line is:"%i)
s=input();
f.write(s+'\n')
print("\t 结束输入")
f.close()
(2)
file=open('poem.txt','r')
words=[]
for line in file:
for word in line.replace('\n',"").split(" "):
words.append(word)
map={}
for word in words:
map[word]=map[word]+1 if word in map.keys() else 1
for char in {',','.','"s"',"",""}:
if char in map:
map.pop(char)
for key in map:
print(key + ":" + str(map[key]))
(3)
f=open('poem.txt',"r+")
f1=open("paper1.txt","a+")
f2=open("paper2.txt","a+")
i=0
while(f.readline()!=""):
i+=1
f.seek(0,0)
s=f.readline()
j=0
while(s!=""):
j+=1
if(j<=i/2):
f1.writelines(s)
else:
f2.writelines(s)
s=f.readline()
f.close()
f1.close()
f2.close()
|