python编程案例教程课后题(python编程案列教程)

http://www.itjxue.com  2023-03-31 21:17  来源:未知  点击次数: 

Python编程题:输入圆半径,输出圆面积

R=eval()(input("请输入圆的半径:"))

pi=3.14

S=pi*R**2

print("圆的面积是:{}".format(S))

如果需要更精确的面积,可调用math库,即可获得更精确的答案。

扩展资料:

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

以下是 eval() 方法的语法:

eval(expression[, globals[, locals]])

参数:

expression -- 表达式。

globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。

locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

参考资料来源:百度百科-eval()

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])

运行结果如下:

望采纳~

2021-01-20 python编程题(1/100)

问题:编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上(1级)

方法:使用for循环+if语句+join()+append()

'''

def number():

num_list = []

for i in range(2000,3201):

if i %7 == 0 and i %5 != 0:

num_list.append(str(i))

num = ','.join(num_list)

return num

if name == ' main ':

print(number())

'''

容易错的点:由于循环取的int类型,而join()只能处理str等可迭代类型,因此需要将i转换为str类型,否则会报错

求一份鱼C工作室,python 课后测试题及答案!!

1,使用getopt。getopt()优化当前的功能函数:

[html]

#!/usr/bin/python

# -*- coding: utf-8 -*-

#coding=utf-8

import os,sys

import getopt

print sys.argv

CDROW='/home/zhouqian/test'

def cdWalker(CDROW,cdfile):

result=[]

for root,dirs,files in os.walk(CDROW):

result.append("%s %s %s" %(root,dirs,files))

print root

open(cdfile,'w').write('\n'.join(result))

def usage():

print '''pycdc 使用方式:

python cdays-3-exercise-1.py -d cdc -k 中国火

#检索cdc中有没有中国火字样的目录,

'''

try:

opts,args=getopt.getopt(sys.argv[1:],'hd:e:k:')

except getopt.GetoptError:

usage()

sys.exit()

if len(opts)==0:

usage()

sys.exit()

c_path=''

name=''

for opt,arg in opts:

if opt in('-h','--help'):

usage()

sys.exit()

elif opt=='-e':

if os.path.exists(arg):#判断目标路径是否存在

# cdWalker(CDROW,arg)

print "记录光盘的位置是 %s" %arg

else:

print "不存在这样的目录"

elif opt=='-d':

c_path=arg

print c_path

cdWalker(CDROW,c_path)

elif opt=='-k':

if not c_path:

usage()

sys.exit()

else:

name=arg

for root,dirs,files in os.walk(c_path):

if root=='%s' %name:

print '您要找的文件在%s' %dirs

这是第一个题,大概做了2个小时吧,各种纠结啊,后面两个正在做。中间遇到的问题总结:

函式的利用,os.path.walk,python字符集,getopt模块的使用学习,os.path.exists()的利用,列表的对应关系等等

习题2 :关键词-----》序列号问题:

[html]

#!/usr/bin/python

#coding=utf-8

import sys

def collect(file):

result={}

for line in file.readlines():

left,right=line.split()

if result.has_key(right):

result[right].append(left)

else:

result[right]=[left]

return result

if __name__=="__main__":

print sys.argv

if len(sys.argv)==1:

print 'usage:\tpython value_keys.py test.txt'

else:

result=collect(open(sys.argv[1],'r'))

for (right,left) in result.items():

print "%d %s = %s" %(len(left),right,left)

结果显示:

[html]

root@zhou:/home/zhouqian/python# py value_keys.py test.txt

ssss

2 key3 = ['6', '33']

3 key2 = ['1', '2', '45']

3 key1 = ['4', '5', '13']

遇到的问题总结:

split的用法:line.split()就是分开出左右两边的值,在默认的情况下是以一个空格或者多个空格为分割符的,

has_key()的用法:是查看字典数据类型中有没有这么一个关键字。上面可知result={}是初始化了一个字典的数据类型。

字典的一些用法:怎么定义,怎么赋值:result[right]=[left]或者result[right]=left,遍历字典中所用

项,result.items(),遍历字典的key值:result.keys(),遍历字典的value值:result.values()

[html]

dict={'chen':25,'zhou':24,'xiao':35}

dict.values()

[25, 35, 24]

dict.keys()

['chen', 'xiao', 'zhou']

dict.items()

[('chen', 25), ('xiao', 35), ('zhou', 24)]

(责任编辑:IT教学网)

更多

推荐java认证文章