Python​ 重解零基础100题(7)

简介: Python​ 重解零基础100题(7)

第61题


问题:打印unicode字符串“hello world”。

提示:使用u'strings'格式来定义unicode字符串;



解决方案:

1. unicodeString = u"hello world!"
2. print(unicodeString)




第62题


问题:python中的解码与编码;

提示:使用encode()与decode()函数进行转换。

1. s = '止于至善'
2. enc = s.encode('utf-8')
3. dec = enc.decode('utf-8')
4. print(enc)
5. print(dec)



第63题


问题:编写一个特殊注释来表明Python源代码文件是unicode格式的。

1. # -*- coding: utf-8 -*-
2. #----------------------------------------#




第64题


问题写一个程序来计算1/2+2/3+3/4+......+n/(n+1)。

示例:如果下面的n作为程序的输入:5;

那么,程序的输出应该是:3.55;

提示:使用float()将整数转换为浮点数。


1. n=int(input())
2. sum=0.0
3. for i in range(1,n+1):
4.     sum += float(float(i)/(i+1))
5. print(sum)



我的答案:

>>> def Sum(n):
  s=0
  for i in range(1,n+1):
    s+=i/(i+1)
  return round(s,2)
>>> Sum(5)
3.55
>>> 



第65题


问题:编写程序计算:当n>0和F(0)=1时,F(n)=F(n-1)+100通过控制台输入一个给定的n (n>0)。

示例:如果下面的n作为程序的输入:5,

那么,程序的输出应该是:500;

提示:我们可以在Python中定义递归函数。


1. def f(n):
2.     if n==0:
3.         return 0
4.     else:
5.         return f(n-1)+100
6. n=int(input())
7. print(f(n))



我的答案:

1. >>> def f(n):
2.  return 100+f(n-1) if n else 0
3. 
4. >>> f(5)
5. 500




第66题


问题:斐波那契数列的计算公式如下:如果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;


提示:我们可以在Python中定义递归函数。

def f(n):
    if n == 0: return 0
    elif n == 1: return 1
    else: return f(n-1)+f(n-2)
n=int(input())
print(f(n))


我的答案:

1. >>> def f(n):
2.  return f(n-2)+f(n-1) if n>1 else n
3. 
4. >>> f(7)
5. 13
6. >>>




第67题


问题:斐波那契数列的计算公式如下:如果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;

提示:我们可以在Python中定义递归函数。使用列表理解从现有列表生成列表。使用string.join()连接字符串列表。

def f(n):
    if n == 0: return 0
    elif n == 1: return 1
    else: return f(n-1)+f(n-2)
n=int(input())
values = [str(f(x)) for x in range(0, n+1)]
print(",".join(values))



我的答案:

>>> def f(n):
  global lst
  lst=[0]
  t=f(n-2)[0]+f(n-1)[0] if n>1 else n
  lst.append(t)
  return (t,lst)
>>> f(7)
(13, [0, 1, 1, 2, 3, 5, 8, 13])
>>> f(7)[1]
[0, 1, 1, 2, 3, 5, 8, 13]




第68题


问题:请使用generator编写一个程序,当n由控制台输入时,以逗号分隔的形式输出0和n之间的偶数;


示例:如果下面的n作为程序的输入10;

那么,程序的输出应该是:0,2,4,6,8,10;


提示:使用yield生成生成器中的下一个值。


def EvenGenerator(n):
    i=0
    while i<=n:
        if i%2==0:
            yield i
        i+=1
n=int(input())
values = []
for i in EvenGenerator(n):
    values.append(str(i))
print(",".join(values))


我的答案:

1. >>> def EG(n):
2.  for i in range(0,n+1,2):
3.    yield i
4. 
5. 
6. >>> [i for i in EG(10)]
7. [0, 2, 4, 6, 8, 10]
8. >>>





第69题


问题:请编写一个生成器程序,以逗号分隔的形式输出0到n之间可以被5和7整除的数字,而n是通过控制台输入的。


示例:如果下面的n作为程序的输入:100;

那么,程序的输出应该是:0,35,70;


提示:使用yield生成生成器中的下一个值。

def NumGenerator(n):
    for i in range(n+1):
        if i%5==0 and i%7==0:
            yield i
n=int(input())
values = []
for i in NumGenerator(n):
    values.append(str(i))
print(",".join(values))



我的答案:

1. >>> def nGen(n):
2.  for i in range(n+1):
3.    if not i%(5*7):
4.      yield i
5. 
6. 
7. >>> [i for i in nGen(100)]
8. [0, 35, 70]
9. >>>



第70题


问题:请写assert语句来验证列表[2,4,6,8]中的每个数字都是偶数。

提示:使用“断言表达式”进行断言。

1. li = [2,4,6,8]
2. for i in li:
3.     assert i%2==0
目录
相关文章
|
存储 索引 Python
Python​ 重解零基础100题(10-2)
Python​ 重解零基础100题(10-2)
69 0
|
存储 Python
Python​ 重解零基础100题(10)
Python​ 重解零基础100题(10)
68 0
|
索引 Python
Python​ 重解零基础100题(9)
Python​ 重解零基础100题(9)
73 0
|
索引 Python
Python​ 重解零基础100题(8)
Python​ 重解零基础100题(8)
84 0
|
Python
Python​ 重解零基础100题(6)
Python​ 重解零基础100题(6)
69 0
|
Python
Python​ 重解零基础100题(5)
Python​ 重解零基础100题(5)
65 0
|
Python
Python​ 重解零基础100题(4)
Python​ 重解零基础100题(4)
82 0
|
机器人 Python
Python​ 重解零基础100题(3)
Python​ 重解零基础100题(3)
115 0
|
JSON 数据安全/隐私保护 数据格式
Python​ 重解零基础100题(2)
Python​ 重解零基础100题(2)
222 0
|
Python 容器
Python​ 重解零基础100题(1)
Python​ 重解零基础100题(1)
136 0