资源经验分享Python 练习100题---No.(61-80)---附其他题目解答链接

Python 练习100题---No.(61-80)---附其他题目解答链接

2019-12-23 | |  106 |   0

原标题: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 练习100题---No.(41-60)---附其他题目解答链接

下一篇:Python 练习100题---No.(81-98)---附其他题目解答链接

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...