《笨方法学PYTHON》——tenthlesson

本文深入探讨Python中函数和文件处理的基本概念,通过具体示例讲解如何使用函数进行数学运算及文件读写操作,强调变量定义的重要性并展示IDE如何辅助编程。

习题20:函数和文件

inputFile = "harddemo6.txt"

'''个人观点,仅供参考:python区别java的一大特性是什么,就是变量对象无需定义,直接使用
当年这种方法可能会带来某些方便之处,最最最明显的好处就是,你能少写单词了,哈哈哈,不开玩笑,但我百度了一下,也没有人一本正经的解释这个好处。。。
但有一点必须注意,虽然不需要定义类型,但永远记住先定义后使用的规则,这个在哪个语言中都不会变的
回归主题:下面这个函数有没有发现不定义的一大缺点,相信你只要亲自打过这段代码就会知道,f这个对象由于你没有定义,IDE是不知道该f是变量还是对象,是对象有哪些方法,所以你必须键全方法名,而用过java的人就会知道,java由于定义了对象,所以IDE会提示你方法名,选择就可以了
现在IDE这么发达,为了少打字母而做的优化,完全没有这个必要
再次重申吧,上面仅仅是个人观点,现在自动化行业内都在使用python,除非你自己是java大牛,要不然还是得学python
'''


def printAll(f):
    print(f.read())


# seek()0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。当文件已经使用过了,加一句seek(0)重新读取
def rewind(f):
    f.seek(0)


# 一行一行的读取,并显示行号
def printALine(lineCount, f):
    print(lineCount, f.readline())


currentFile = open(inputFile)
print("First let's print the whole file:\n")
printAll(currentFile)
print("Now let's rewind,kind of like a tape.")
rewind(currentFile)
print("Let's print three lines:")
currentLine = 1
printALine(currentLine, currentFile)
currentLine = currentLine + 1
printALine(currentLine, currentFile)
currentLine = currentLine + 1
printALine(currentLine, currentFile)

1. 通读脚本,在每行之前加上注解,以理解脚本里发生的事情。

2. 每次 print_a_line 运行时,你都传递了一个叫 current_line 的变量。在每次调用函 数时,打印出 current_line 的至,跟踪一下它在 print_a_line 中是怎样变成 line_count 的。

3. 找出脚本中每一个用到函数的地方。检查 def 一行,确认参数没有用错。

4. 上网研究一下 file 中的 seek 函数是做什么用的。试着运行 pydoc file 看看能不能学 到更多。

5. 研究一下 += 这个简写操作符的作用,写一个脚本,把这个操作符用在里边试一下。

currentLine+=1

千万注意,python里面没有i++和i--

 

 

习题21:函数可以返回东西

def add(a, b):
    print("ADDING %d+%d" % (a, b))
    return a + b


def subtract(a, b):
    print("SUBTRACTING %d-%d" % (a, b))
    return a - b


def multiply(a, b):
    print("MULTIPLYING %d*%d" % (a, b))
    return a * b


# 除法运算之后,结果必然为浮点型
def divide(a, b):
    print("DIVIDING %d/%d" % (a, b))
    return a / b


print("Let's do some math with just functions!")
age = add(30, 5)
height = subtract(78, 4)
weight = multiply(90, 2)
iq = divide(100, 2)
print("Age:%d,Height:%d,Weight:%d,IQ:%d" % (age, height, weight, iq))
# A puzzle for the extra credit,type it in anyway.
print("Here is a puzzle.")
# 记住,从右往左读的
what = add(age, subtract(height, multiply(weight, divide(iq, 2))))
print("That becomes:", what, "Can you do it by hand?")
Let's do some math with just functions!
ADDING 30+5
SUBTRACTING 78-4
MULTIPLYING 90*2
DIVIDING 100/2
Age:35,Height:74,Weight:180,IQ:50
Here is a puzzle.
DIVIDING 50/2
MULTIPLYING 180*25
SUBTRACTING 74-4500
ADDING 35+-4426
That becomes: -4391.0 Can you do it by hand?

1. 如果你不是很确定 return 的功能,试着自己写几个函数出来,让它们返回一些值。你可以将 任何可以放在 = 右边的东西作为一个函数的返回值。

2. 这个脚本的结尾是一个迷题。我将一个函数的返回值用作了另外一个函数的参数。我将它们链接 到了一起,就跟写数学等式一样。这样可能有些难读,不过运行一下你就知道结果了。接下来, 你需要试试看能不能用正常的方法实现和这个表达式一样的功能。

3. 一旦你解决了这个迷题,试着修改一下函数里的某些部分,然后看会有什么样的结果。你可以有 目的地修改它,让它输出另外一个值。

4. 最后,颠倒过来做一次。写一个简单的等式,使用一样的函数来计算它。 

 

 

 

print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值