python编程练习题
斐波那契数列自第三个数开始,每个数均为之前两个数的和。
至少有两种方法来实现它。
最常见的利用迭代的方法,其核心思路是
fib(n) =fib(n-1) +fib(n-2)
而在n<2时直接,没有n-2,因此直接返回1:
def fib(num): return 1 if n<2 else fib(num-1) + fib(num-2)
这是一种很简单的实现。在阶梯数不大时,它很好用。当阶梯数很大时,因为二次手迭代,会比较慢。因此,可以在计算中保存中间值(1至n-1的阶梯数)来减少计算量:
这种方式在计算阶梯数10000时就可以保持不错的性能。如果需要多次计算该数列,则可以利用对象来保持这个中间值列表,下列代码中,Fibonaci实例只计算未曾计算的阶梯数,在重复调用时它更具优势:
class Fibonaci(object):
....history=[1, 1]
....def cacl(self, num):
........while len(self.history) <= num:
............self.history.append(self.history[-1] + self.history[-2])
........returnself.history[num]
if __name__ == '__main__':
....fib =Fibonaci()
....print(fib.calc(100))
....print(fib.calc(32))
....print(fib.calc(10000))
2. Python编程题:输入圆半径,输出圆面积
R=eval(input("请输入圆的半径:"))
pi=3.14
S=pi*R**2
print("圆的面积是:{}".format(S))
如果需要更精确的面积,可调用math库,即可获得更精确的答案。
(2)python编程练习题扩展阅读:
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数:
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
参考资料来源:网络-eval()
3. Python编程题怎么写
Python编程题写法:第一个问题使用排序算法,有很多种,可以使用简单一点的冒泡排序。第二个问题为了确保是输入了5个整数,可以使用while循环+try。
假设data.txt中所有的号码都在一行,没有换行,写入到data_asc.txt中时,假设每行一个,原文件中是否有换行;写入到data_asc.txt文件中时,是一行一个;还是所有的都在一行,然后用英文逗号隔开。
Python
是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。
4. 求一道python编程题
time="13时4分20秒"
i=time.find("时")
hour=time[:i]
j=time.find("分")
minute=time[i+1:j]
k=time.find("秒")
second=time[j+1:k]
print('{0:0>2s}:{1:0>2s}:{2:0>2s}'.format(hour,minute,second))
5. Python练习题
1
print("hi, “”“how are you”””, I’m fine and you")
2
a, b= map(int, input().split())
r=a//b
m=a%b
6. python编程题
mons = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
def get_days(mon, day):
if mon == 1:
return mons[0], day
else:
count = sum(mons[:mon-1])
count = count + day
return mons[mon - 1], count
mon = int(input("请输入月份:"))
day = int(input("请输入号数:"))
result = get_days(mon, day)
print("{}月有{}天。".format(mon, result[0]))
print("{}月{}号是该年的第{}天".format(mon, day, result[1]))
7. python编程题目,求解!!!
num = 0
L = ['Alice', 66, 'Bob', True, 'False', 100]
for item in L:
num = num + 1
if num % 2 != 0:
continue
print(item)
8. Python编程题求助
该答案为组合数学中着名的卡特兰数,其通式为C(2n,n)-C(2n,n-1)
这里采用递推关系求解,即动态规划的方法
设n对父子有d[n]种出场策略,注意初值d[0]=1
因为每个孩子前面必有一个父亲与之对应
对于i对父子,遍历第j个孩子,该孩子前面有j-1个孩子,对应d[j-1]种出场策略
后面有i-j个孩子,对应d[i-j]种出场策略,则d[i]+=d[j-1]*d[i-j],最终d[n]即为所求
python代码如下:
n = int(input())
d = [0] * (n+1)
d[0] = 1
for i in range(n+1):
for j in range(i+1):
d[i] += d[j-1] * d[i-j]
print(d[n])
运行结果如下:
望采纳~
9. Python编程练习问题,望大神解答!!!
#coding=utf8
importxlwt
data={"A":[(1,2,3),(4,5,6)],"B":[(7,8,9),(10,11,12)],"C":[(13,14,15),(16,17,18)],'D':[(19,20,21,22),(23,24,25,26),(27,28,29,30)]}
wb=xlwt.Workbook()
sheet_index=wb.add_sheet(u"目录")
sheet_index.write(0,0,u'用户编号')
index=1
forkindata:
sheet_index.write(index,0,k)
index+=1
index=0
forkindata:
sheet=wb.add_sheet("%s"%k)
sheet.write(0,0,u'名字')
fordinrange(0,len(data[k][0])):
sheet.write(0,d+1,u'数值'+str(d+1))
fordinrange(0,len(data[k])):
sheet.write(d+1,0,k)
forvalue_indexinrange(0,len(data[k][d])):
sheet.write(d+1,value_index+1,data[k][d][value_index])
wb.save("test.xls")