在此基础上,我们再多改变一点:(计算输入参数square的平方)
importargparse
parser =argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number")
args =parser.parse_args()
print args.square**2
下面是运行结果:
$ python prog.py 4Traceback (most recent call last):
File "prog.py", line 5, in print args.square**2TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
这个程序并不能正确运行,因为argparse会将输入当作字符串处理,所以我们需要设置它的类型:(type=int)
importargparse
parser =argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
type=int)
args =parser.parse_args()
print args.square**2
下面是运行结果:
$ python prog.py 4
16
$ python prog.py four
usage: prog.py [-h] square
prog.py: error: argument square: invalid int value: 'four'
现在,这个程序能够顺利运行,而且能够处理一些错误输入
用python编程,求代码# 时间转换的函数
def timeTrans(t):
if t60:
h = t / 60
m = t % 60
tt = '%d:%d' % (h, m)
return '%d:%d' % (h, m)
else:
return '0:%d' % t
# 汇率转换的函数
def swap(money):
omoney = money * 0.7899
return omoney
# 时间转换函数调用测试
# 传入76分钟
mytime = timeTrans(76)
# 输出1:16
print mytime
# 汇率转换函数测试
# 传入10块钱
t = swap(10)
# 输出7.899
print t
怎样让Python脚本与C++程序互相调用二、Python调用C/C++\x0d\x0a\x0d\x0a\x0d\x0a1、Python调用C动态链接库\x0d\x0a\x0d\x0aPython调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可 。\x0d\x0a(1)C语言文件:pycall.c\x0d\x0a\x0d\x0a[html] view plain copy \x0d\x0a/***gcc -o libpycall.so -shared -fPIC pycall.c*/\x0d\x0a#include\x0d\x0a#include\x0d\x0aint foo(int a, int b)\x0d\x0a{\x0d\x0aprintf("you input %d and %d\n", a, b);\x0d\x0areturn a+b;\x0d\x0a}\x0d\x0a(2)gcc编译生成动态库libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c 。使用g++编译生成C动态库的代码中的函数或者方法时 , 需要使用extern "C"来进行编译 。\x0d\x0a(3)Python调用动态库的文件:pycall.py\x0d\x0a\x0d\x0a[html] view plain copy \x0d\x0aimport ctypes\x0d\x0all = ctypes.cdll.LoadLibrary\x0d\x0alib = ll("./libpycall.so")\x0d\x0alib.foo(1, 3)\x0d\x0aprint '***finish***'\x0d\x0a(4)运行结果:\x0d\x0a\x0d\x0a\x0d\x0a2、Python调用C++(类)动态链接库 \x0d\x0a\x0d\x0a需要extern "C"来辅助,也就是说还是只能调用C函数,不能直接调用方法,但是能解析C++方法 。不是用extern "C" , 构建后的动态链接库没有这些函数的符号表 。\x0d\x0a(1)C++类文件:pycallclass.cpp\x0d\x0a\x0d\x0a[html] view plain copy \x0d\x0a#include\x0d\x0ausing namespace std;\x0d\x0a\x0d\x0aclass TestLib\x0d\x0a{\x0d\x0apublic:\x0d\x0avoid display();\x0d\x0avoid display(int a);\x0d\x0a};\x0d\x0avoid TestLib::display() {\x0d\x0acout\x0d\x0ausing namespace std;\x0d\x0aint test()\x0d\x0a{\x0d\x0aint a = 10, b = 5;\x0d\x0areturn a+b;\x0d\x0a}\x0d\x0aint main()\x0d\x0a{\x0d\x0acout\x0d\x0a#include\x0d\x0a#include\x0d\x0a\x0d\x0aint fac(int n)\x0d\x0a{\x0d\x0aif (n
回答于 2022-11-16
python函数swap的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Python函数参数、python函数swap的信息别忘了在本站进行查找喔 。
推荐阅读
- ITOOLS安卓模拟器游戏,itools模拟器支持ios吗
- mongodb客户端中文乱码的简单介绍
- 真人演绎的射击游戏有哪些,真人射击简称
- 文章推送公众号排版方法,微信公众号推文怎么排版软件
- c语言函数中改变全局变量 c语言全局变量如何定义
- oracle查询所有表的中文名,oracle查询包含中文
- ios高清电脑壁纸,iphone高清桌面壁纸
- 服务器响应时间,服务器响应时间限制在10ms
- vb.net查看word vbnet reportviewer