找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 191|回复: 5

[求助] 萌新初学者求助。。。

1

主题

3

帖子

3

积分

贫民

积分
3
hilot_python 发表于 2019-5-10 18:36:14 | 显示全部楼层 |阅读模式
#ex18.py
# this one is like your scripts with argv
def print_two(*args):
    arg1,arg2 = args
    print(f"arg1: {arg1}, arg2: {arg2}")

# ok, that *args is actually pointless, we can just do this
def print_two_again(arg1,arg2):
    print(f"arg1: {arg1}, arg2: {arg2}")

# this just takes one argument
def print_one(arg1):
    print(f"arg1: {arg1}")

# this one takes no argumengts
def print_none():
    print("I got nothing.")


    print_two("Zed","Shaw")
    print_two_again("Zed","Shaw")
    print_one("First!")
    print_none()


萌新刚刚自学到函数,以上是和教材书上一模一样照打出来的。然后在Powershell里面运行没反应。直接一闪就还是回到>>>命令符。
按书上的说法是本来要出现如下结果。不知道哪里错了,一头雾水。
>>>python ex18.py
arg1: Zed, arg2: Shaw
arg1: Zed, arg2: Shaw
arg1: First!
I got nothing.


回复

使用道具 举报

0

主题

438

帖子

438

积分

骑士

积分
438
sheeboard 发表于 2019-5-10 20:00:25 | 显示全部楼层
本帖最后由 sheeboard 于 2019-5-10 21:00 编辑

print_two("Zed","Shaw")开始后面都要顶格写,不然会认为是def print_none():里的内容而不执行的。
还有print(f"arg1: {arg1}, arg2: {arg2}")里的f是什么意思?c语言里的printf ?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
yuxidi 发表于 2019-5-13 08:45:14 | 显示全部楼层
因为你只把函数调用写到了函数print_two里面
回复 支持 反对

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2019-5-13 11:13:27 | 显示全部楼层
sheeboard 发表于 2019-5-10 20:00
print_two("Zed","Shaw")开始后面都要顶格写,不然会认为是def print_none():里的内容而不执行的。
还有pri ...

print(f"arg1: {arg1}, arg2: {arg2}")好像是最近几版引入的格式化方式,比format更爽更简单
回复 支持 反对

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
hilot_python  楼主| 发表于 2019-5-14 11:27:34 | 显示全部楼层
啊!确实是的,发帖完不久实在找不出我就重新再打了一遍,就发现问题了。确实是这样的,谢谢各位大侠帮忙! 十分感谢!
回复 支持 反对

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
hilot_python  楼主| 发表于 2019-5-14 11:36:17 | 显示全部楼层
sheeboard 发表于 2019-5-10 20:00
print_two("Zed","Shaw")开始后面都要顶格写,不然会认为是def print_none():里的内容而不执行的。
还有pri ...

是的,这个是新版的format用法,直接(f"{}) 就可以实现和.format()一样的效果。十分感谢你的帮助!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表