y):print("较大数为" />
Python习题选编
华东师大信息学院计算中心
一.程序结构与算法部分:
1. 编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。
参考代码:
x = int(input("Please enter first integer: "))
y = int(input("Please enter second integer: "))
if (x == y):
print("两数相同!")
elif (x > y):
print("较大数为:",x)
else:
print("较大数为:",y);
2.写一个算法(流程图和python程序):输入三个数,输出其最大
者。
参考代码:
a,b,c=3,4,5
if a <= b:
if c < b:
print ("b是最大的数")
else:
print ("c是最大的数")
else:
if c < a:
print ("a是最大的数")
else:
print ("c是最大的数")
3.使用Python编程,求1~100间所有偶数的和。
参考代码:
sum=0
for x in range(1,101):
if x % 2==0:
print(x)
sum=sum+x
print("累加和是:",sum)
4.用Python编写程序,输入一年份,判断该年份是否是闰年并输出
结果。
注:凡符合下面两个条件之一的年份是闰年。
(1)能被4整除但不能被100整除。
(2)能被400整除。
参考代码:
year = int(input("Please enter the year: "))
if ((year%4==0 and year%100!=0) or (year%400==0)):
print(year,"is a leap year.")
else:
print(year,"is not a leap year.")
5.用Python编程,假设一年期定期利率为3.25%,计算一下需要过
多少年,一万元的一年定期存款连本带息能翻番?
参考代码:
cunkuan = 10000 #本金10000元
years=0
while cunkuan<20000:
years+=1
cunkuan=cunkuan*(1+0.0325)
print(str(years)+"年以后,存款会翻番")
6.从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。其中,
90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。
参考答案:
score=int(input('请输入成绩(0~100):'))
if score > 100:
grade = "输入错误!"
elif score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
elif score >= 0:
grade = 'E'
else:
grade = "输入错误!"
print(grade)
7.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果
大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!”。
参考答案:
num=7
while True:
guess=int(input('请输入你猜的数(0~9):'))
if guess == num:
print("恭喜!你猜中了!")
break;
elif guess > num:
print("太大")
else:
print("太小")
8.输入一个数,判断这个数是否为素数,并输出判断结果。
(所谓素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。下
图为参考流程图)
参考答案:
import math
n=int(input("请输入一个数:"))
x=int(math.sqrt(n))
i,w=2,0
for i in range (2,x+1):
if n%i==0:
w=1
if w==1:
print(n,"不是素数。")
else:
print(n,"是素数。")
或
import math
n=int(input('请输入一个数:'))
i,w=2,0
while i <= int(math.sqrt(n)) and w==0: if n%i == 0:
w = 1
break
else:
i = i+1
if w==0:
print(n,"是素数!")
else:
print(n,"不是素数!")
或
import math
n=int(input('请输入一个数:'))
i=2
while i <= int(math.sqrt(n)) :
if n%i == 0:
print(n,"不是素数!")
break
else:
i=i+1
else:
print(n,"是素数!")
9.输入一个时间(小时:分钟:秒),输出该时间经过5分30秒后的时间。
参考答案:
hour,minute,second=input('请输入一个时间(h:m:s):').split(':')
hour=int(hour)
minute=int(minute)
second=int(second)
second+=30
if second >= 60:
second = second-60
minute += 1
minute+=5
if minute >= 60:
minute = minute-60
hour += 1
if hour == 24:
hour = 0
print('%d:%d:%d'%(hour,minute,second))
10.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因
子为1、2、3,而6=1+2+3,因此6是完数。编程,找出1000之内的所有完数,并输出该完数及对应的因子。(枚举法)
参考答案:
m=1000
for a in range(2,m+1):
s=a
L1=[]
for i in range(1,a):
if a%i==0:
s-=i
L1.append(i)
if s==0:
print("完数:%d,因子包括:"%a,end="")
for j in range(1,len(L1)):
print("%d"%L1[j],end=",")
print("\n")
11.编程,解决猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。(迭代法)
参考答案:
day=9
x=1
while day>0:
x=(x+1)*2
day-=1
print("total=",x)
二.输入输出与文件部分:
1. 编写一个python程序,输入两个数,输出两数之和。
参考代码:
x = int(input("Please enter first integer: "))
y = int(input("Please enter second integer: "))
print("The sum is:");
print(x+y);
2. 在当前目录下有一个文件名为temp.txt的文件,存放着上海从2014年3月10日(周一)到3月16日(周日)间一周的最高和最低气温(单位为摄氏度)。其中,第一行为最高气温,第二行为最低气温。编程,找出这一周中第几天最热(按最高气温计算)?最高多少度?这一周中第几天最冷(按最低气温计算)?最冷多少度?
参考答案:
flname="temp.txt"
f=open(flname)
ht=(f.readline()).strip()
L1=list(ht.split(','))
lt=(f.readline()).strip()
L2=list(lt.split(','))
f.close()
for i in range(len(L1)):
L1[i]=int(L1[i])
L2[i]=int(L2[i])
maxVal=L1[0]
maxDay=0
minVal=L2[0]
minDay=0
for i in range(1,len(L1)):
if L1[i]>maxVal:
maxVal=L1[i]
maxDay=i
if L2[i] minVal=L2[i] minDay=i print("这周第"+str(maxDay+1)+"天最热,最高"+str(maxVal)+"摄氏度") print("这周第"+str(minDay+1)+"天最冷,最低"+str(minVal)+"摄氏度") 3.在上题的基础上,求出全周的平均气温(这一周各天平均温度的平均值,取整数)。假设在气象意义上,入春标准是连续5天日均气温超过10℃,根据这一周的气象数据是否能判断上海已经入春? 参考答案: flname="temp.txt" f=open(flname) ht=(f.readline()).strip() L1=list(ht.split(',')) lt=(f.readline()).strip() L2=list(lt.split(',')) f.close() L3=[] for i in range(len(L1)): L1[i]=int(L1[i]) L2[i]=int(L2[i]) L3.append(int((L1[i]+L2[i])/2)) sum=0 k=0 for i in range(len(L3)): sum=sum+L3[i] if L3[i]>=10: k+=1 else: k=0 avg=int(sum/len(L3)) print("周平均气温为:",avg) if k>=5: print("上海这周已入春。") else: print("上海这周未入春。") 4.当前目录下有一个文件名为score1.txt的文本文件,存放着某班学生的计算机课成绩,共有学号、平时成绩、期末成绩三列。请根据平时成绩占40%,期末成绩占60%的比例计算总评成绩(取整数),并分学号、总评成绩两列写入另一文件score2.txt。同时在屏幕上输出学生总人数,按总评成绩计90以上、80~89、70~79、60~69、60分以下各成绩档的人数和班级总平均分(取整数)。参考答案: f=open("score1.txt") a=f.readline() line=(f.readline()).strip() f2=open("score2.txt",'w') f2.write("学号平均成绩\n"); L2=[0,0,0,0,0] count=0 sum=0 while (len(line) != 0): #print(line) L1=line.split() f2.write(L1[0]+" ") f_score=int(int(L1[1])*0.4+int(L1[2])*0.6) if 90 L2[0]+=1 elif f_score>=80: L2[1]+=1 elif f_score>=70: L2[2]+=1 elif f_score>=60: L2[3]+=1 else: L2[4]+=1 count+=1 sum+=f_score f2.write(str(f_score)+"\n") line=(f.readline()).strip() f.close() f2.close() avg_score=int(sum/count) print("学生总人数为%d,按总评成绩计,90以上%d人、80~89间%d人、70~79间%d人、60~69间%d人、60分以下%d人。班级总平均分为%d分。"%(count,L2[0],L2[1],L2[2],L2[3],L2[4],avg_score)) 或 f=open("score1.txt") a=f.readlines() del a[0] L3=[] for line in a: line=line.strip() L1=line.split() f_score=int(int(L1[1])*0.4+int(L1[2])*0.6) L3.append([L1[0],f_score]) f.close() c=[0,0,0,0,0] count=0 sum=0 f2=open("score2.txt",'w') f2.write("学号平均成绩\n"); for L2 in L3: if 90 c[0]+=1 elif L2[1]>=80: c[1]+=1 elif L2[1]>=70: c[2]+=1 elif L2[1]>=60: c[3]+=1 else: c[4]+=1 count+=1 sum+=L2[1] f2.write(L2[0]+" "+str(L2[1])+"\n") f2.close() avg_score=int(sum/count) print("学生总人数为%d,按总评成绩计,90以上%d人、80~89间%d人、70~79间%d人、60~69间%d人、60分以下%d人。班级总平均分为%d分。"%(count,c[0],c[1],c[2],c[3],c[4],avg_score)) 5.当前目录下有一个文本文件sample12.txt,其内容包含小写字母和大写字母。请将该文件复制到另一文件sample12_copy.txt,并将原文件中的小写字母全部转换为大写字母,其余格式均不变。 参考答案: f=open("sample12.txt") L1=f.readlines() f2=open("sample12_copy.txt",'w') for line in L1: f2.write(line.upper()) f.close() f2.close() 6.当前目录下有一个文件名为class_score.txt的文本文件,存放着某班学生的学号、数学课成绩(第2列)和语文课成绩(第3列)。请编程完成下列要求:(1)分别求这个班数学和语文的平均分(保留1位小数)并输出。 (2)找出两门课都不及格(<60)的学生,输出他们的学号和各科成绩。 (3)找出两门课的平均分在90分以上的学生,输出他们的学号和各科成绩。建议用三个函数分别实现以上要求。 参考答案: def output_avg(L): sum1,sum2=0,0 for line in L: L1=line.strip().split() sum1+=int(L1[1]) sum2+=int(L1[2]) count=len(L) avg1=round(sum1/count,1) avg2=round(sum2/count,1) print("这个班的数学平均分为:%4.1f,语文平均分为:%4.1f"%(avg1,avg2)) def output_notpass(L): print("两门课均不及格的学生学号及数学、语文成绩为:") for line in L: L1=line.strip().split() if int(L1[1])<60 and int(L1[2])<60: print(line) def output_good(L): print("两门课平均分在90分以上的学生学号及数学、语文成绩为:") for line in L: L1=line.strip().split() f_score=round((int(L1[1])+int(L1[2]))/2) if f_score>=90: print(line) f=open("class_score.txt") L=f.readlines() del L[0] output_avg(L) output_notpass(L) output_good(L) 三.算法分析与设计部分 1.编程,从键盘接收若干个整数(直接输入回车表示结束),用冒泡法或选择 法进行排序(从小到大),并将排序结果在屏幕上输出。同时估计算法的复杂度。 参考答案: 选择排序: def bubble(List): num=len(List) for i in range(0,num-1): for j in range(i+1,num): if List[i]>List[j]: List[i],List[j]=List[j],List[i] return List L1=[] num_str=input('请输入一个需排序的整数:') while len(num_str) != 0: L1.append(int(num_str)) num_str=input('请输入一个需排序的整数:') print('排序后结果:', bubble(L1)) 或 冒泡排序: def bubble(List): for i in range(0,len(List)-1): for j in range(len(List)-1,i,-1): if List[j-1]>List[j]: List[j-1],List[j]=List[j],List[j-1] return List L1=[] num_str=input('请输入一个需排序的整数:') while len(num_str) != 0: L1.append(int(num_str)) num_str=input('请输入一个需排序的整数:') print('排序后结果:', bubble(L1)) 上述两个程序算法的时间复杂度均为O(n2). 2.从键盘接收一个正整数n,输出对应斐波那契(Fibonacci)数列的前n项(计算数列中某项的值请用递归函数实现)。另外,请指出所用算法的复杂度。 有能力的同学还可进一步改进算法的效率。 参考答案: def fib(n): if n==0 or n==1: return n else: return fib(n-1) + fib(n-2) n=int(input('n=')) for i in range(n+1): print(fib(i),end=" ") 算法时间复杂度为O(n*2n). 可改进为: def fib(n,List): a,b=0,1 List.append(a) while b<=n: List.append(b) a,b = b,a+b n=int(input('n=')) L1=[] fib(n,L1) print(L1) 算法的时间复杂性为O(n) 3.当前目录下有一个文件名为score2.txt的文本文件,存放着某班学生的计算机课成绩,共有学号、总评成绩两列。请查找最高分和最低分的学生,并在屏幕上显示其学号和成绩。另外,请指出所用算法的复杂度。 参考答案: f=open("score2.txt") a=f.readlines() del a[0] L2=[] L3=[] for line in a: line=line.strip() L1=line.split() L2.append(L1[0]) L3.append(L1[1]) f.close() maxScore=L3[0] maxIndex=0 minScore=L3[0] minIndex=0 for i in range(1,len(L3)): if L3[i]>maxScore: maxScore=L3[i] maxIndex=i if L3[i] minScore=L3[i] minIndex=i print("最高分为:"+str(maxScore)+"分,该学生学号为:"+str(L2[maxIndex])) print("最低分为:"+str(minScore)+"分,该学生学号为:"+str(L2[minIndex])) 时间复杂度为O(n). 四.数据结构部分: 1.编程,输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的 个数。 参考答案: letters,space,digit,other=0,0,0,0 s=input("请输入一行字符:") for i in range(len(s)): if (s[i]>='a' and s[i]<='z') or (s[i]>='A' and s[i]<='Z'): letters+=1 elif s[i]==' ': space+=1 elif s[i]>='0' and s[i]<='9': digit+=1 else: other+=1 print("字母数:%d\n空格数:%d\n数字数:%d\n其他字符 数:%d\n"%(letters,space,digit,other)) 或 p=input('请输入一行字符:') a,b,c,d=0,0,0,0 for i in p: if((i<='Z' and i>='A') or (i<='z' and i>='a')): a+=1 elif (i==' '): b+=1 elif(i>='0' and i<='9'): c+=1 else: d+=1 print ('英文字母的个数为:'+str(a)) print ('空格的个数为:'+str(b)) print ('数字的个数为:'+str(c)) print ('其他字符的个数为:'+str(d)) 或 letter,space,digit,other=0,0,0,0 s = input('input a string:') for c in s: if c.isalpha(): letter +=1 elif c.isspace(): space +=1 elif c.isdigit(): digit +=1 else: other +=1 print("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n"%(letter,space,digit,other)) 2.小王希望用电脑记录他每天掌握的英文单词。请设计程序和相应的数据结构,使小王能记录新学的英文单词和其中文翻译,并能很方便地根据英文来查找中文。 (参考:数据结构建议用集合。集合添加:dic[key]=value 判断key是否在集合中:if key in dic)。 参考答案: def add_dic(dic): while True: word=input("请输入英文单词(直接按回车结束):") if len(word)==0: break; meaning=input("请输入中文翻译:") dic[word]=meaning print("该单词已添加到字典库。") return def search_dic(dic): while True: word=input("请输入要查询的英文单词(直接按回车结束):") if len(word)==0: break; if word in dic: print("%s的中文翻译是%s"%(word,dic[word])) else: print("字典库中未找到这个单词") return worddic=dict() while True: print("请选择功能:\n1:输入\n2:查找\n3:退出") c=input() if c=="1": add_dic(worddic) elif c=="2": search_dic(worddic) elif c=="3": break else: print("输入有误!") 五.异常处理部分: 1.以下是两数相加的程序: x = int(input("x=")) y = int(input("y=")) print("x+y=",x+y); 该程序要求接收两个整数,并输出相加结果。但如果输入的不是整数(如字母、浮点数等),程序就会终止执行并输出异常信息。请对程序进行修改,要求输入非整数时,给出“输入内容必须为整数!”的提示,并提示用户重新输入,直至输入正确。 参考答案: while True: try: x = int(input("x=")) except ValueError: print("输入内容必须为整数!") else: break while True: try: y = int(input("y=")) except ValueError: print("输入内容必须为整数!") else: break print("x+y=",x+y) 2.编程,请输入一个文件路径名或文件名,查看该文件是否存在,如存在,打开文件并在屏幕上输出该文件内容;如不存在,显示“输入的文件未找到!”并要求重新输入;如文件存在但在读文件过程中发生异常,则显示“文件无法正常读出!”并要求重新输入。 (提示:请使用异常处理。“文件未找到”对应的异常名为:FileNotFoundError,其他异常直接用except匹配) 参考答案: while True: try: filename=input('请输入文件路径名或文件名:') f=open(filename.strip()) print(f.read()) except FileNotFoundError: print("输入的文件未找到!") except: print("文件无法正常读出!") else: break f.close() 五.函数部分: 1.写一判素数的函数,在主函数中输入一个整数,调用该函数进行判断并输出 结果。 参考答案: def shushu(n): import math i,w=2,0 if n<=1: w=1 while i <= int(math.sqrt(n)) and w==0: if n%i == 0: w = 1 break else: i = i+1 return w n=int(input('n=')) if shushu(n)==0: print(n,"是素数!") else: print(n,"不是素数!") 2.当前目录下有一个文件名为score 3.txt的文本文件,存放着某班学生的学 号和其两门专业课的成绩。分别用函数实现以下功能: (1)定义函数function1,计算每个学生的平均分(取整数),并将所有学生的学号和平均分在屏幕上输出。(函数参数为要读取文件的文件名) def function1(flname): #函数代码 function1("c:\\test\\score3.txt") 参考答案: def function1(flname): f=open(flname) a=f.readlines() del a[0] L3=[] for line in a: line=line.strip() L1=line.split() avg_score=int((int(L1[1])+int(L1[2]))/2) L3.append([L1[0],avg_score]) f.close() print("学号平均分") for L2 in L3: print(L2[0]+" "+str(L2[1])) (2)定义函数calAvg(),计算某一门课程的平均分(函数参数为某门课成绩对应的列表名,返回值为该门课的平均分) def calAvg(L): #函数代码 f=open("c:\\test\\score3.txt") a=f.readlines() del a[0] L2=[] L3=[] for line in a: line=line.strip() L1=line.split() L2.append(int(L1[1])) L3.append(int(L1[2])) f.close() print("专业课1的总平均分为",calAvg(L2)) print("专业课2的总平均分为",calAvg(L3)) 参考答案: def calAvg(L): sum,count=0,0 for score in L: sum+=score count+=1 avg_score=int(sum/count) return avg_score 3.用函数或函数的递归实现求n!的算法。(主程序已给出)。同时估计程序的 复杂度。 def fact(n): //函数代码 n=int(input("Calculate n! Enter n=")) print(n,'!=',fact(n)) 参考答案: def fact(n): value=1 for count in range(1,n+1): value*=count return value 或 def fact(n): if n==1: value=1 else: value=n*fact(n-1) return value 程序复杂度为O(n). 4.分别编写求两个整数的最大公约数的函数hcf和求最小公倍数的函数lcd。主函数已给出,其从键盘接收两个整数,调用这两个函数后输出结果。 (提示:求最大公约数可用辗转相除法。即将大数作为被除数,小数作为除数,若二者余数不为0,则将小数作为被除数,余数作为除数,…直到余数为0。求最小公倍数则用两数的积除以最大公约数即可。) 参考答案: def hcf(u,v): if v>u: u,v=v,u r=u%v while r!=0: u=v v=r r=u%v return v def lcd(u,v,h): return u*v/h u=int(input("请输入第一个整数:")) v=int(input("请输入第二个整数:")) h=hcf(u,v) print("%d和%d的最大公约数为%d:"%(u,v,h)) l=lcd(u,v,h) print("%d和%d的最小公倍数为%d:"%(u,v,l)) 5.编程,统计列表中各数据的方差和标准差。主函数已给出,请编写计算方差的函数var。 (提示:方差的计算公式为:∑X i2/n-(∑X i/n)2,其中,n为列表中元素个数,X i为列表中的第i项。标准差则为方差的算术平方根。) 参考答案: import math def var(L1): s,psum=0,0 for i in range(len(L1)): v=L1[i] s+=v psum+=v*v s=s/len(L1) mse=psum/len(L1)-s*s return mse L1=[5,3,7,8,14,9,12,6] dx=var(L1) print('方差为:%.2f'%dx) mse=math.sqrt(dx) print('标准差为:%.2f'%mse) 6.主程序中已有一个排好序的列表,请编写函数insertList,将从键盘接收的整数按原来从小到大的排序规律插入到该列表中。 def insertList(L1,x): #函数代码 L1=[1,4,6,9,13,16,28,40,100] x=int(input('请输入一个要插入的整数:')) insertList(L1,x) print(L1) 参考答案: def insertList(L1,x): if x>L1[len(L1)-1]: L1.append(x) return for i in range(0,len(L1)): if x L1.insert(i,x) break return L1=[1,4,6,9,13,16,28,40,100] x=int(input('请输入一个要插入的整数:')) insertList(L1,x) print(L1) 《Python》期末考试试题A卷答案 一、问答题(每题2分,共20分) (1)整形和浮点型(或者int和float) (2)乘法*, 幂运算 **,求余 % (3)/是算术除,包含小数,//是整除,不包含小数(意思对即可) (4) 1、括号内优先 2、幂运算 3、乘法、除法、求余运算 4、加法减法 5、关系运算 6、逻辑运算 答出前4条即可 (5)数字转字符串的函数str(),字符串转数字的函数int(),字符串转浮 点数的函数float(),字符串描述的运算式求值函数是eval() (6)读方式:open(“file.txt”, ‘r’) 写方式:open(“file.txt”, ‘w’) 追加方式:open(“file.txt”, ‘a’) (7) 逻辑运算符与:and 或运算:or 非运算:not。 (8)sublist = list1[2:4] (9) break语句表示要终止循环。 continue语句表示结束当前循环,开始下一次循环。 两者的区别是:break终止循环,continue还有继续循环,只是结束本次循环。 (10) lambda表达式的作用就是为了节省函数的格式化定义,同时减少函 数调用的开销。 例如 lambda x:x+1 二、给出下列代码行相应的输出(每题3分,共15分) 1、在一个随机选择群组中有23 个人,有两个人有相同生日的概率是\n 0.51. 2、This sentence contains five words This sentence contains six different words 3、to be, or not to be. 4、3 《Python程序设计》习题与参考答案 第1章基础知识 1.1 简单说明如何选择正确的Python版本。 答: 在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高反复安装和卸载上。同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。 尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。 1.2 为什么说Python采用的是基于值的内存管理模式? 答: Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。 >>> x = 3 >>> id(x) >>> y = 3 >>> id(y) >>> y = 5 >>> id(y) >>> id(x) 1.3 在Python中导入模块中的对象有哪几种方式? 答:常用的有三种方式,分别为 ●import 模块名 [as 别名] ●from 模块名 import 对象名[ as 别名] ●from math import * 1.4 使用pip命令安装numpy、scipy模块。 答:在命令提示符环境下执行下面的命令: pip install numpy pip install scipy 1.5 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。例如用户输入1234,则程序输出12。(提示:使用整除运算。) 答: x = input('Please input an integer of more than 3 digits:') try: Python练习题库 By 郑红波 2017-12-19 一、填空题 1.Python标准库math中用来计算平方根的函数是__________。(sqrt) 2.在Python中__________表示空类型。(None) 3.列表、元组、字符串是Python的_________(有序?无序)序列。(有序) 4.查看变量类型的Python内置函数是________________。(type()) 5.查看变量内存地址的Python内置函数是_________________。(id()) 6.表达式[1, 2, 3]*3的执行结果为______________________。([1, 2, 3, 1, 2, 3, 1, 2, 3]) 7.list(map(str, [1, 2, 3]))的执行结果为_____________________。([‘1’, ‘2’, ‘3’]) 8.已知 x = 3,并且id(x)的返回值为 496103280,那么执行语句 x += 6 之后,表达式 id(x) == 496103280 的值为___________。(False) 9.已知 x = 3,那么执行语句 x *= 6 之后,x的值为________________。(18) 10.表达式“[3] in [1, 2, 3, 4]”的值为________________。(False) 11.假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到 的值是______________________。([6, 7, 9, 11]) 12.使用列表推导式生成包含10个数字5的列表,语句可以写为_______________。([5 for i in range(10)]) 13.假设有列表a = ['name', 'age', 'sex']和b = ['Dong', 38, 'Male'],请使用一个语句将这 两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为_____________________。(c = dict(zip(a, b))) 14.任意长度的Python列表、元组和字符串中最后一个元素的下标为________。(-1) 15.Python语句''.join(list('hello world!'))执行的结果是____________________。('hello world!') 16.转义字符’\n’的含义是___________________。(回车换行) 17.Python语句list(range(1,10,3))执行结果为___________________。([1, 4, 7]) 18.切片操作list(range(6))[::2]执行结果为________________。([0, 2, 4]) 19.表达式 'ab' in 'acbed' 的值为________。(False) 20.Python 3.x语句 print(1, 2, 3, sep=':') 的输出结果为____________。(1:2:3) 21.表达式 int(4**0.5) 的值为____________。(2) 22.达式 sorted([111, 2, 33], key=lambda x: -len(str(x))) 的值为____________。([111, 33, 2]) 23.已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为___________。('3') 24.表达式 min(['11', '2', '3']) 的值为_________________。('11') 25.已知列表对象x = ['11', '2', '3'],则表达式max(x, key=len) 的值为___________。('11') 26.语句 x = (3,) 执行后x的值为_______________。((3,)) 27.语句 x = (3) 执行后x的值为________________。(3) 28.已知 x = {1:2},那么执行语句 x[2] = 3之后,x的值为________________。({1: 2, 2: 3}) 29.字典对象的_____________方法返回字典中的“键-值对”列表。(items()) 30.使用列表推导式得到100以内所有能被13整除的数的代码可以写作 ___________________________________。([i for i in range(100) if i%13==0]) 31.表达式 3 ** 2 的值为_________。(9) 32.表达式 3 * 2的值为___________。(6) 33.已知 x = [3, 5, 7],那么执行语句 x[len(x):] = [1, 2]之后,x的值为______________。([3, 5, 7, 1, 2]) 34.表达式 list(zip([1,2], [3,4])) 的值为________________________。([(1, 3), (2, 4)]) 35.已知 x = [1, 2, 3, 2, 3],执行语句 x.pop() 之后,x的值为_____________。([1, 2, 3, 2]) 36.表达式 [x for x in [1,2,3,4,5] if x<3] 的值为_____________________。([1, 2]) 第一节课 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比C语言、C++语言或Java 之类的系统编程语言要简单容易。 也让脚本语言另有一些属于脚本语言的特性: ?语法和结构通常比较简单 ?学习和使用通常比较简单 ?通常以容易修改程序的“解释”作为运行方式,而不需要“编译” ?程序的开发产能优于运行性能 一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。 1. IDLE 是什么? IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用IDLE这个shell与Python进行互动。 2. print() 的作用是什么? print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLE shell 窗口)。 3. Python 中表示乘法的符号是什么? Python中的乘号是*(星号)。 4. 为什么>>>print('I love https://www.sodocs.net/doc/7316445646.html, ' * 5) 可以正常执行, 但>>>print('I love https://www.sodocs.net/doc/7316445646.html, ' + 5) 却报错? 《P y t h o n程序设计》习题与参考答案 第1章基础知识 简单说明如何选择正确的Python版本。 答: 在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高反复安装和卸载上。同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。 尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 系列的最高版本(目前是Python )。 为什么说Python采用的是基于值的内存管理模式? 答: Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。 >>> x = 3 >>> id(x) >>> y = 3 >>> id(y) >>> y = 5 >>> id(y) >>> id(x) 在Python中导入模块中的对象有哪几种方式? 答:常用的有三种方式,分别为 ?import 模块名[as 别名] ?from 模块名import 对象名[ as 别名] ?from math import * 使用pip命令安装numpy、scipy模块。 答:在命令提示符环境下执行下面的命令: pip install numpy pip install scipy 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。例如用户输入1234,则程序输出12。(提示:使用整除运算。) 答: x = input('Please input an integer of more than 3 digits:') try: x = int(x) x = x else: print(x) except BaseException: print('You must input an integer.') import types x = input('Please input an integer of more than 3 digits:') if type(x) != : print 'You must input an integer.' elif len(str(x)) != 4: print 'You must input an integer of more than 3 digits.' else: print xoin(map(str,result)) x = input('Please input an integer less than 1000:') t = x i = 2 result = [] while True: if t==1: break if t%i==0: (i) t = t/i else: i+=1 print x,'=','*'.join(map(str,result)) 编写程序,至少使用2种不同的方法计算100以内所有奇数的和。 x = [i for i in range(1,100) if i%2==1] print(sum(x)) print(sum(range(1,100)[::2])) 编写程序,实现分段函数计算,如下表所示。 Python练习题库 By 郑红波2017-12-19 一、填空题 1.Python标准库math中用来计算平方根的函数是__________。(sqrt) 2.在Python中__________表示空类型。(None) 3.列表、元组、字符串是Python的_________(有序无序)序列。(有序) 4.查看变量类型的Python内置函数是________________。(type()) 5.查看变量内存地址的Python内置函数是_________________。(id()) 6.表达式[1, 2, 3]*3的执行结果为______________________。([1, 2, 3, 1, 2, 3, 1, 2, 3]) 7.list(map(str, [1, 2, 3]))的执行结果为_____________________。([‘1’, ‘2’, ‘3’]) 8.已知 x = 3,并且id(x)的返回值为 0,那么执行语句 x += 6 之后,表达式 id(x) == 0 的值为___________。(False) 9.已知 x = 3,那么执行语句 x *= 6 之后,x的值为________________。(18) 10.表达式“[3] in [1, 2, 3, 4]”的值为________________。(False) 11.假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是______________________。([6, 7, 9, 11]) ([5 for 12.使用列表推导式生成包含10个数字5的列表,语句可以写为_______________。 i in range(10)]) 13.假设有列表a = ['name', 'age', 'sex']和b = ['Dong', 38, 'Male'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为_____________________。(c = dict(zip(a, b))) 14.任意长度的Python列表、元组和字符串中最后一个元素的下标为________。(-1) 15.Python语句''.join(list('hello world!'))执行的结果是____________________。('hello world!') 16.转义字符’\n’的含义是___________________。(回车换行) 17.Python语句list(range(1,10,3))执行结果为___________________。([1, 4, 7]) 18.切片操作list(range(6))[::2]执行结果为________________。([0, 2, 4]) 19.表达式 'ab' in 'acbed' 的值为________。(False) 20.Python 语句 print(1, 2, 3, sep=':') 的输出结果为____________。(1:2:3) 21.表达式 int(4** 的值为____________。(2) 22.达式 sorted([111, 2, 33], key=lambda x: -len(str(x))) 的值为____________。([111, 33, 2]) 23.已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为___________。('3') 24.表达式 min(['11', '2', '3']) 的值为_________________。('11') 25.已知列表对象x = ['11', '2', '3'],则表达式max(x, key=len) 的值为___________。('11') 26.语句 x = (3,) 执行后x的值为_______________。((3,)) 27.语句 x = (3) 执行后x的值为________________。(3) 28.已知 x = {1:2},那么执行语句 x[2] = 3之后,x的值为________________。({1: 2, 2: 3}) 29.字典对象的_____________方法返回字典中的“键-值对”列表。(items()) 30.使用列表推导式得到100以内所有能被13整除的数的代码可以写作___________________________________。([i for i in range(100) if i%13==0]) 31.表达式 3 ** 2 的值为_________。(9) 32.表达式 3 * 2的值为___________。(6) 33.已知x = [3, 5, 7],那么执行语句x[len(x):] = [1, 2]之后,x的值为 Python程序设计基础习题答案与分析 程昱 第1章基础知识 1.1 简单说明如何选择正确的Python版本。 答: 在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。 尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。 1.2 为什么说Python采用的是基于值的内存管理模式? Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。 >>> x = 3 >>> id(x) 10417624 >>> y = 3 >>> id(y) 10417624 >>> y = 5 >>> id(y) 10417600 >>> id(x) 10417624 >>> x = [1, 2, 3, 1, 1, 2] >>> id(x[0])==id(x[3])==id(x[4]) True 1.3 解释Python中的运算符“/”和“//”的区别。 答: 在Python 2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python 3.x中,“/”为真除法,与除法的数学含义一致。 獨傢惜愛獨傢棄愛獨傢襲愛 #!/usr/bin/env python #coding: utf-8 ''' 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: ''' for i in range(1,5): for j in range(1,5): for k in range(1,5): if( i != k ) and (i != j) and (j != k): print i,j,k ''' 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: ''' bonus1 = 100000 * 0.1 bonus2 = bonus1 + 100000 * 0.500075 bonus4 = bonus2 + 200000 * 0.5 bonus6 = bonus4 + 200000 * 0.3 bonus10 = bonus6 + 400000 * 0.15 i = int(raw_input('input gain:\n')) if i <= 100000: bonus = i * 0.1 elif i <= 200000: bonus = bonus1 + (i - 100000) * 0.075 elif i <= 400000: 习题答案 第1章 一、选择题 二、填空题 1.对象 2.可移植性 3.quit()、Ctrl+q 4. F5 5. # 第2章 一、选择题 二、填空题 1. 2**32-1 2. 4 3. 0.5 4. 4 3 5. π的值为3.1416 第3章 一、选择题 二、填空题 1. 顺序结构分支结构循环结构 2. for while 3. break continue 4. 9 5. Helloorld 6. 2 1 0 7. 2,3,5,7, 8. 153 第4章 一、选择题 二、填空题 1.变量的作用域、全局变量、局部变量 2.关键字 3.不定长 4.17 5. 3 6. 6 第5章 一、选择题 二、填空题 1.所有键 2.[9,10] 3.[6,7,8] 4.键、值、字典项 5.{'01': 'python', '02': 'C++', '03': 'java', '1': 'py'} 6.len() 7.逗号、冒号 8.get() 第6章 一、选择题 二、填空题 1. a 2. 文本文件二进制文件 3. f.seek( 0 ) 4. 一行 5. ['红豆生南国,\n', '春来发几枝。\n', '愿君多采撷,\n', '此物最相思。\n'] 6. rb 第7章 一、选择题 二、填空题 1.科学计算np 2.randn() rand() uniform() 3.- -. -- : solid dashdot dashed dotted 4.plot() 散点 5.stopwords mask 三、问答题 1.答: 创建ndarray类型的数组的方法很多,有5种常规机制,如下: 习题1 一、选择题 1.Python语言属于()。C A.机器语言 B.汇编语言 C.高级语言 D.科学计算语言2.下列选项中,不属于Python特点的是()。B A.面向对象 B.运行效率高 C.可读性好 D.开源3.Python程序文件的扩展名是()。D A..python B..pyt C..pt D..py 4.以下叙述中正确的是()。C A.Python 3.x与Python 2.x兼容 B.Python语句只能以程序方式执行 C.Python是解释型语言 D.Python语言出现得晚,具有其他高级语言的一切优点 5.下列选项中合法的标识符是()。A A._7a_b B.break C._a$b D.7ab 6.下列标识符中合法的是()。B A.i'm B._ C.3Q D.for 7.Python不支持的数据类型有()。A A.char B.int C.float D.list 8.关于Python中的复数,下列说法错误的是()。B A.表示复数的语法形式是a+bj B.实部和虚部都必须是浮点数C.虚部必须加后缀j,且必须是小写 D.函数abs()可以求复数的模9.函数type(1+0xf*3.14)的返回结果是()。D A. Python课后题答案第1章Python概述 一、填空题 1.对象 2.可移植 3.字节码 4.UTF-8 二、判断题 1.对 2.对 3.对 4.对 5.错 6.错 7.对 8.错 9.对 10.错 三、选择题 1. C 2.ABCD 3. B 4. C 5. D 四、简答题。 1.Python具有的特点如下: ●简单易学 ●开源 ●高级语言 ●可移植性 ●解释性 ●面向对象 ●可扩展性 ●丰富的库 ●规范的代码 2. Python可以应用在下列领域: ●web应用开发 ●操作系统管理、服务器运维的自动化脚本 ●科学计算 ●桌面软件 ●服务器软件(网络软件) ●游戏 ●构思实现,产品早期原型和迭代 3. Python2.x和Python3.x的区别如下: (1)在python2.x中,输出数据使用的是print语句。但是在python3.x中,print语句没有了,取而代之的是print()函数 (2)python2有ASCII Str()类型,unicode()是单独的,不是byte类型。在python3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。 (3)在python 2.x中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python 3.x 中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。 (4)相比python2.x版本,python3.x版本在异常方面有很多改变: ?在python2.x版本,所有类型的对象都是直接被抛出的,但是,在python3.x版本中,只有继承自BaseException的对象才可以被抛出。 ?在python2.x版本中,捕获异常的语法是except exc,var。在python3.x 版本中,引入了as关键字,捕获异常的语法变更为except exc as var。 可爱的python习题答案 status校对lizzie 完成度100% CDays-5 1. 计算今年是闰年嘛?判断闰年条件, 满足年份模400为0, 或者模4为0但模100 不为0. o源代码 Toggle line numbers 1 #coding:utf-8 2 '''cdays-5-exercise-1.py 判断今年是否是闰年 3 @note: 使用了import, time模块, 逻辑分支, 字串 格式化等 4 ''' 5 6 import time #导入time 模块 7 thisyear = time.localtime()[0] #获取当 前年份 8 if thisyear % 400 == 0 or thisyear % 4 ==0 and thisyear % 100 <> 0: #判断闰年条件, 满足模400为0, 或者模4为0但 模100不为0 9 print 'this year %s is a leap year' % thisyear 10 else: 11 print 'this year %s is not a leap year' % thisyear 12 o运行截屏 2. 利用python作为科学计算器。熟悉Python中的常用运算符,并分别求出表达式 12*34+78-132/6、(12*(34+78)-132)/6、(86/40)**5的值。并利用math模块进行数学计算,分别求出145/23的余数,0.5的sin和cos值(注意sin和cos中参数是弧度制表示)提醒:可通过import math; help("math")查看math帮助. o源代码 Toggle line numbers 1 #coding:utf-8 2 '''cdays-5-exercise-2.py 求表达式的值 3 @note: 基本表达式运算, 格式化输出, math模块 4 @see: math模块使用可参考 https://www.sodocs.net/doc/7316445646.html,/lib/module-math.html 5 ''' 6 7 x = 12*34+78-132/6 #表达式计算 8 y = (12*(34+78)-132)/6 9 z = (86/40)**5 10 11 print '12*34+78-132/6 = %d' % x 12 print '(12*(34+78)-132)/6 = %d' % y 13 print '(86/40)**5 = %f' % z 14 15 import math #导入数学计算模块 16 17 a = math.fmod(145, 23) #求余函式 18 b = math.sin(0.5) #正弦函式 19 c = math.cos(0.5) #余弦函式 20 21 print '145/23的余数 = %d' % a 22 print 'sin(0.5) = %f' %b 23 print 'cos(0.5) = %f' %c 24 选择题 1. python程序文件的扩展名是(B) A. python B. py C. pt D. pyt 2. Python语言采用严格的“缩进”来表明程序的格式框架。下列说法不正确的是:C A. 缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系。 B. 代码编写中,缩进可以用Tab键实现,也可以用多个空格实现,但两者不混用。 C. “缩进”有利于程序代码的可读性,并不影响程序结构。 D. 不需要缩进的代码顶行编写,不留空白。 3.以下叙述正确的是C A. Python3.x和Python2.x兼容 B. Python语言只能以程序方式执行 C. Python是解释型语言 D. Python语言出现的晚,具有其他高级语言的一切优点 4. 下列关于Python的说法中,错误的是(C) A. Python是从ABC语言发展起来的 B. Python是一门高级的计算机语言 C. Python是一门只面向对象的语言 D. Python是一种代表简单主义思想的语言 5.下列选项中,不属于Python特点的是( B )。 A.面向对象B.运行效率高C.可读性好D.开源 6.以下叙述中正确的是( C )。 A.Python 3.x与Python 2.x兼容 B.Python语句只能以程序方式执行 C.Python是解释型语言 D.Python语言出现得晚,具有其他高级语言的一切优点 7.下列选项中合法的标识符是( D )。 A._7a_b B.break C._a$b D.7ab 8.Python不支持的数据类型有( D )。 A.char B.int C.float D.list 9.关于Python中的复数,下列说法错误的是( B )。 A.表示复数的语法形式是a+bj B.实部和虚部都必须是浮点数 C.虚部必须加后缀j或J D.函数abs()可以求复数的模 10.函数type(1+0xf*3.14)的返回结果是( D )。 A. Python基础教程 习题(含答案) 第一章 一、判断题 1、Python是一种跨平台、开源、免费的高级动态编程语言。(对) 2、Python 3.x完全兼容Python 2.x。(错) 3、在Windows平台上编写的Python程序无法在Unix平台运行。(错) 4、不可以在同一台计算机上安装多个Python版本。(错) 5、pip命令也支持扩展名为.whl的文件直接安装Python扩展库。(对) 二、填空题 1、Python安装扩展库常用的是_______工具。(pip) 2、在IDLE交互模式中浏览上一条语句的快捷键是__________。(Alt+P) 3、Python程序文件扩展名主要有__________和________两种,其中后者常用于GUI 程序。(py、pyw) 4、Python源代码程序编译后的文件扩展名为_________。(pyc) 5、使用pip工具升级科学计算扩展库Numpy的完整命令是______________。(pip install --upgrade Numpy) 6、使用pip工具安装科学计算扩展库Numpy的完整命令是___________。(pip install Numpy) 7、使用pip工具查看当前已安装的Python扩展库的完整命令是__________。(pip list) 8、现有一python文件为“Stu.py”,ico文件为“Stu.ico”,两者均在同一目录下,现要将Stu.py打包发布在此目录下,所发布的文件图标采用Stu.ico,需要使用的命令是_____________。(pyinstaller –I Stu.ico –F Stu.py) 第二章 一、判断题 1、已知 x = 3,那么赋值语句 x = 'abcedfg' 是无法正常执行的。(错) 2、Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。(错) 3、Python采用的是基于值得自动内存管理方式。(对) 4、Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。(对) 5、在Python中可以使用if作为变量名。(错) 6、在Python 3.x中可以使用中文作为变量名。(对) 1.写程序,输出以下内容 for m in range (1,5): for n in range(1,5): print m," ",n print " " 写程序,输出以下内容 N=5 for m in range(1,5): for n in range(1,m+1): print m,"",n print " " 2.写程序,输出以下内容 讨巧的办法就是把第1-2中的m和n互换N=5 for m in range(1,N): for n in range(1,m+1): print n,"",m print " " 3.写程序,输出以下内容 # encoding: utf-8 def gen(line_cnt): ''' @param: line_cnt 行数 ''' for row in range(1,line_cnt+1): for col in range(1,row+1): print '%d %d\t' % (col,row), print '' if __name__ == '__main__': gen(4) 4.写程序,输出以下内容 # -*- coding: cp936 -*- #enconding: utf-8 def gen(line_cnt): ''': @param:行数 ''' for i in range(1,line_cnt+1): for j in range(1,i+1): m=i*j print '%s*%s=%s\t' % (i,j,m),#这边的逗号很重要,有了逗号,才能不换行print'' if __name__ == '__main__': gen(9) Python课后题答案第1章P ython概述 一、填空题 1.对象 2.可移植 3.字节码 4.UTF-8 二、判断题 1.对 2.对 3.对 4.对 5.错 6.错 7.对 8.错 9.对 10.错 三、选择题 1. C 2.ABCD 3. B 4. C 5. D 四、简答题。 1.Python具有的特点如下: ●简单易学 ●开源 ●高级语言 ●可移植性 ●解释性 ●面向对象 ●可扩展性 ●丰富的库 ●规范的代码 2. Python可以应用在下列领域: ●web应用开发 ●操作系统管理、服务器运维的自动化脚本 ●科学计算 ●桌面软件 ●服务器软件(网络软件) ●游戏 ●构思实现,产品早期原型和迭代 3. Python2.x和Python3.x的区别如下: (1)在python2.x中,输出数据使用的是print语句。但是在python3.x中,print语句没有了,取而代之的是print()函数 (2)python2有ASCII Str()类型,unicod e()是单独的,不是byte类型。在python3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。 (3)在python 2.x中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python 3.x 中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。 (4)相比python2.x版本,python3.x版本在异常方面有很多改变: ?在python2.x版本,所有类型的对象都是直接被抛出的,但是,在python3.x版本中,只有继承自BaseException的对象才可以被抛出。 ?在python2.x版本中,捕获异常的语法是except exc,var。在python3.x 版本中,引入了as关键字,捕获异常的语法变更为except exc as var。 獨傢惜愛獨傢棄愛獨傢襲愛 : 8 ''' 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少 : 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: ''' i (1,5): j (1,5): k (1,5): ( i k ) (i j) (j k): ; ''' 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数 [ 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: ''' 1 = 100000 * 2 = 1 + 100000 * 4 = 2 + 200000 * 6 = 4 + 200000 * 10 = 6 + 400000 * - i = ((' :\n')) i <= 100000: = i * i <= 200000: = 1 + (i - 100000) * i <= 400000: = 2 + (i - 200000) * ! i <= 600000: = 4 + (i - 400000) * i <= 1000000: = 6 + (i - 600000) * : = 10 + (i - 1000000) * ' = ' ''' ¥ 【程序3】 题目:一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: "" () ' { ;Python A卷答案
《Python程序设计》习题与答案
python练习题答案
python课后题及答案
Python程序设计习题与答案
python练习题-答案
《Python程序设计基础》习题答案与分析
Python99道经典练习题答案
Python程序设计习题答案
Python程序设计课后习题答案-第一单元
Python课后题答案-20180305
可爱的python习题答案
Python练习题1以及答案
Python基础教程-习题(含答案)
python编程练习题和答案
Python课后题答案(2018版)
Python99道经典练习题答案