鱼C论坛

 找回密码
 立即注册
查看: 3729|回复: 6

打印1-100所有的奇数,关于打印print()的问题,麻烦帮忙看下代码,谢谢

[复制链接]
发表于 2017-1-8 00:00:01 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 鱼的泪 于 2017-1-8 00:04 编辑

想实现 打印1-100所有的奇数
1、执行出问题的代码:
  1. temp = 49
  2. num = 1
  3. print(num)
  4. while temp:
  5.      print(num = num + 2)
  6.      temp -= 1
复制代码
注: 第五行换成 print(num += 2) 也失败
报错:raceback (most recent call last):
  File "C:/Users/Administrator/Desktop/打印奇数(错误).py", line 5, in <module>
    print(num = num + 2)
TypeError: 'num' is an invalid keyword argument for this function


2、如果这样写,才成功
  1. temp = 49
  2. num = 1
  3. print(num)
  4. while temp:
  5.      num += 2
  6.      print(num)
  7.      temp -= 1
复制代码
















最佳答案

查看完整内容

print(num = num + 2) 这个错误是因为,print函数,要求输入的参数是一个对象,而你这个写法则是一个表达式,所以明显是错误的。错误提示中,也明确说明是类型错误TypeError。 我们也可以在官方文档中,看到print()函数的定义: print(*objects, sep=' ', end='\n', file=sys.stdout) 其中,第一个参数,就是要求是对象! 其实,如果只想打印奇数,可以有更简单的方法,更少的代码:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-8 00:00:02 | 显示全部楼层
print(num = num + 2)
这个错误是因为,print函数,要求输入的参数是一个对象,而你这个写法则是一个表达式,所以明显是错误的。错误提示中,也明确说明是类型错误TypeError。
我们也可以在官方文档中,看到print()函数的定义:
    print(*objects, sep=' ', end='\n', file=sys.stdout)
其中,第一个参数,就是要求是对象!
其实,如果只想打印奇数,可以有更简单的方法,更少的代码:
  1. # 方法1,使用列表
  2. for i in range(1, 100, 2):
  3.    print(i)

  4. # 方法2:使用filter()这个函数,再配合匿名函数
  5. g = filter(lambda x: x % 2, range(1, 100))
  6. print g
复制代码

评分

参与人数 2荣誉 +5 贡献 +3 收起 理由
小宇666 + 5
marmot + 3 支持楼主!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-8 08:06:52 From FishC Mobile | 显示全部楼层
这样写o=[print(i, end=' ') for i in range(100) if i%2]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-8 09:56:53 | 显示全部楼层
关注一下,我也不懂
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-8 10:50:24 | 显示全部楼层
temp = 49                                         #给temp变量赋值49
num = 1                                            #给num变量赋值1
print(num)                                        #打印num变量的值
while temp:                                       #当temp变量为真的时候循环下列语句
     print(num = num + 2)                #打印 (num变量+2赋值给num???????)          <- 问题所在,既 然是打印,为什么又要在打印中赋值呢???
     temp -= 1                                    #temp减一后赋值给temp

问题出在第5行,为什么要在打印中使用赋值操作?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-8 14:36:11 | 显示全部楼层
THEOTY 发表于 2017-1-8 10:50
temp = 49                                         #给temp变量赋值49
num = 1                         ...

首先非常的感谢!!
我以为打印的时候可以使用赋值操作,就那样写了
我在网上仔细查询了下 print()用法,用法如下,如有错误欢迎指正:
print函数是python语言中的一个输出函数,可以输出以下几种内容
1. 字符串和数值类型 可以直接输出
         >>>  print( 1)  
         1  
         >>>  print( "Hello World")  
          Hello World  
2.变量
无论什么类型,数值,布尔,列表,字典...都可以直接输出

           >>> x =  12  
           >>>  print(x)  
           12  
           >>> s =  'Hello'  
           >>>  print(s)  
           Hello  
           >>> L = [ 1, 2, 'a']  
           >>>  print(L)  
           [ 1,  2,  'a']  
           >>> t = ( 1, 2, 'a')  
           >>>  print(t)  
           ( 1,  2,  'a')  
           >>> d = { 'a': 1,  'b': 2}  
           >>>  print(d)  
           { 'a':  1,  'b':  2}  
3.格式化输出
      类似于C中的 printf
      >>> s  
      'Hello'  
       >>> x = len(s)  
       >>>  print( "The length of %s is %d"  % (s,x) )  
       The length of Hello  is  5  
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-9 14:24:50 | 显示全部楼层
学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-28 04:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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