Python 练习100题---No.(61-80)---附其他题目解答链接
原标题:Python 练习100题---No.(61-80)---附其他题目解答链接
原文来自:CSDN 原文链接:https://blog.csdn.net/weixin_41744624/article/details/103607992
github展示python100题
链接如下:
https://github.com/zhiwehu/Python-programming-exercises/blob/master/100%2B%20Python%20challenging%20programming%20exercises.txt
以下为博主翻译后题目及解答,答案代码分为两个,第一条为博主个人解答(Python3),第二条为题目所提供答案(Python2)
………………………………………………………………………………
题目1-20链接:https://blog.csdn.net/weixin_41744624/article/details/103426225
题目21-40链接:https://blog.csdn.net/weixin_41744624/article/details/103511139
题目41-60链接:https://blog.csdn.net/weixin_41744624/article/details/103575741
本部分题目为61-80,难度1-3随机顺序;
题目81-98链接:https://blog.csdn.net/weixin_41744624/article/details/103646520
经检测题库去除重复只有98题啦(欢迎评论添加好题目)~
………………………………………………………………………………
61、问题:
编写一个程序来读取ASCII字符串并将其转换为utf-8编码的unicode字符串。
(Python3默认输入会自动转为unicode字符,Python2则会自动读入ascii字符,ord()函数可以返回字符对应的unicode或者ascii值)
编码关系详见:用脚都能理解的–Python2与Python3编码方式
# python2 s = raw_input() u = unicode( s ,"utf-8") print u
62、问题:
写一个特殊的注释来指示Python源代码文件是unicode格式的。
# -*- coding: utf-8 -*-
63、问题:
编写程序计算1/2+2/3+3/4+…+n/n+1,控制台给定n个输入(n>0)。
例子:
如果将下列n作为程序的输入:
5个
那么,程序的输出应该是:
3.55
如果向问题提供了输入数据,则应假定它是控制台输入。
n = input ("input n:") sum = 0 i=1 j=2 for x in range(1,int(n)+1): sum = sum + i/j i=i+1 j=j+1 print (round(sum,2))
n=int(raw_input()) sum=0.0 for i in range(1,n+1): sum += float(float(i)/(i+1)) print sum
64、问题:
编写要计算的程序:
当n>0时,f(n)=f(n-1)+100
f(0)=1(注:博主发现按照公式来说此处应该是0,程序按照=0来写)
通过控制台输入给定的n(n>0)。
例子:
如果将下列n作为程序的输入:
5
那么,程序的输出应该是:
500
如果向问题提供了输入数据,则应假定它是控制台输入。
n = input ("input n(>0):") sum = 0 for x in range(0,int(n)): sum = sum + 100 print (sum)
def f(n): if n==0: return 0 else: return f(n-1)+100 n=int(raw_input()) print f(n)
65、问题:
斐波那契数列的计算公式如下:
如果n=0,f(n)=0
如果n=1,f(n)=1
如果n>1,f(n)=f(n-1)+f(n-2)
请编写一个程序,用控制台输入的给定n计算f(n)的值。
例子:
如果将下列n作为程序的输入:
7
那么,程序的输出应该是:
13
如果向问题提供了输入数据,则应假定它是控制台输入。
n = input ("input n:") a= 0 b= 1 sum1 = 0 x= 0 if int(n) == 0: print (a) elif int(n) == 1: print (b)else: for i in range(2,int(n)+1): sum1 = b+a a = b b = sum1print (sum1)
def f(n): if n == 0: return 0 elif n == 1: return 1 else: return f(n-1)+f(n-2) n=int(raw_input()) print f(n)
66、问题:
斐波那契数列的计算公式如下:
如果n=0,f(n)=0
如果n=1,f(n)=1
如果n>1,f(n)=f(n-1)+f(n-2)
请编写一个使用列表理解的程序,以逗号分隔的形式打印Fibonacci序列,并由控制台输入给定的n。
例子:
如果将下列n作为程序的输入:
7
那么,程序的输出应该是:
0,1,1,2,3,5,8,13
n = input ("input n:")ls = []a= 0 b= 1sum1 = 0x= 0if int(n) == 0: ls.append(0)elif int(n) == 1: ls.append(0) ls.append(1)else: ls.append(0) ls.append(1) for i in range(0,int(n)-1): sum1 = b+a ls.append(sum1) a = b b = sum1print (ls)
def f(n): if n == 0: return 0 elif n == 1: return 1 else: return f(n-1)+f(n-2) n=int(raw_input()) values = [str(f(x)) for x in range(0, n+1)] print ",".join(values)
67、问题:
在控制台输入n时,请用generator编写一个程序,以逗号分隔的形式打印0到n之间的偶数。
例子:
如果将下列n作为程序的输入:
10
那么,程序的输出应该是:
0,2,4,6,8,10
n=input("input n:") def is_even(n): i=0 while i <(int(n)+1): if (i%2==0): yield i i +=1ls = [] for x in is_even(n): ls.append(x) print (ls)
def EvenGenerator(n): i=0 while i<=n: if i%2==0: yield i i+=1n=int(raw_input()) values = [] for i in EvenGenerator(n): values.append(str(i)) print ",".join(values)
68、问题:
在控制台输入n时,请用generator编写一个程序,以逗号分隔的形式打印0到n之间可以被5和7整除的数字。
例子:
如果将下列n作为程序的输入:
100
那么,程序的输出应该是:
0,35,70
n=input("input n:") def is_num(n): i=0 while i <(int(n)+1): if (i%5==0 | i%7==0): yield i i +=1 ls = [] for x in is_num(n): ls.append(x) print (ls)
def NumGenerator(n): for i in range(n+1): if i%5==0 and i%7==0: yield i n=int(raw_input()) values = [] for i in NumGenerator(n): values.append(str(i)) print ",".join(values)
69、问题:
请编写assert语句以验证列表[2,4,6,8]中的每个数字都是偶数。
ls = [2,4,6,8] for i in ls: assert(i%2==0)
li = [2,4,6,8] for i in li: assert i%2==0
70、问题:
请编写一个从控制台接受基本数学表达式的程序,并打印评估结果。
例子:
如果将以下字符串作为程序的输入:
35+3
那么,程序的输出应该是:
38
ls = input("input:") print (eval(ls))
expression = raw_input() print eval(expression)
71、问题:
请编写一个二分法搜索函数,用于搜索排序列表中的项目。函数应该返回要在列表中搜索的元素的索引。
l=input("输入列表,隔开:").split(',') ls = sorted(l) x = input("输入列表中需要搜索的数字:") n=int(x) def binarysearch(ls,a): min=0 max=len(ls)-1 i = 0 while True: i+=1 mid=(max+min)//2 if a>int(ls[mid]): min = mid+1 elif a==int(ls[mid]): print("找到数据") print("次数:"+str(i)) break else: max = mid -1 binarysearch(ls,n)
import math def bin_search(li, element): bottom = 0 top = len(li)-1 index = -1 while top>=bottom and index==-1: mid = int(math.floor((top+bottom)/2.0)) if li[mid]==element: index = mid elif li[mid]>element: top = mid-1 else: bottom = mid+1 return index li=[2,5,7,9,11,17,222] print bin_search(li,11) print bin_search(li,12)
72、问题:
请使用Python数学模块生成一个值介于10和100之间的随机浮点数。
(实际上只能生成0-100间数字,如果为0-10需要重新生成)
import random print (random.random()*100)
73、问题:
请使用Python数学模块生成一个值介于5和95之间的随机浮点数。
(实际上只能生成0-95间数字,如果为0-10需要重新生成)
import random print (random.random()*100-5)
74、问题:
使用random.random()在[0,1]中生成随机浮点数。
(同上的性质一样,可能是出题者懒了一下…)
import random print (random.random())
75、问题:
请编写一个程序,使用random模块和列表理解输出0到10之间的随机偶数。
(random.choice返回的是整数)
import random a=random.random()*10ls = [] if a%2 ==0: ls.append(a) print (ls)
import random print random.choice([i for i in range(11) if i%2==0])
76、问题:
请编写一个程序,使用随机模块和列表理解输出一个可被5和7整除的0到10之间的随机数。
#此方法在上一题加入了while判别 #不建议使用,因为无数的数里只有5和7符合条件,会一直循环好久 #优点是可以一直筛选到值后才推出 import random ls = [] x=0 while x==0: a=random.random()*10 if (a%5 ==0 and a%7 ==0 ): ls.append(a) x=1 print (ls)
import random print random.choice([i for i in range(201) if i%5==0 and i%7==0])
77、问题:
请编写一个程序生成一个包含5个100到200之间的随机数的列表。
(random.sample返回的是整数)
import random ls = []x=0while x<5: a=random.random()*200 if (100<=a and a<=200 ): ls.append(a) x=x+1print (ls)
import random print random.sample(range(100), 5)
78、问题:
请编写一个程序随机生成一个列表,其中包含5个介于100和200之间的偶数。
#此方法依然会跑很久,而且a%2拿出后也会跑很久,建议用下列举方法 import random ls = [] x=0 while x<5: a=random.random()*200 if (100<=a and a<=200 and a%2==0 ): ls.append(a) x=x+1 print (ls)
import random print random.sample([i for i in range(100,201) if i%2==0], 5)
79、问题:
请编写一个程序来随机生成一个包含5个数字的列表,这些数字可以被5和7整除,范围在1到1000之间。
import random print (random.sample([i for i in range(1,1001) if i%5==0 and i%7==0], 5))
import random print random.sample([i for i in range(1,1001) if i%5==0 and i%7==0], 5)
80、问题:
请编写程序随机打印7到15之间的整数。
import random print (random.sample([i for i in range(7,15) if i%1==0 ], 1))
import random print random.randrange(7,16)
免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。
合作及投稿邮箱:E-mail:editor@tusaishared.com
热门资源
Python 爬虫(二)...
所谓爬虫就是模拟客户端发送网络请求,获取网络响...
TensorFlow从1到2...
原文第四篇中,我们介绍了官方的入门案例MNIST,功...
TensorFlow从1到2...
“回归”这个词,既是Regression算法的名称,也代表...
TensorFlow2.0(10...
前面的博客中我们说过,在加载数据和预处理数据时...
机器学习中的熵、...
熵 (entropy) 这一词最初来源于热力学。1948年,克...
智能在线
400-630-6780
聆听.建议反馈
E-mail: support@tusaishared.com