慕课网《Python入门》笔记

中间断了一段时间,现在把慕课网上《Python入门》看完了,也敲完了课程中留的代码作业,可能因为没有实战过的原因,现在并不能明显的感觉到可以用Python来做什么。
但是学完了总得留下点什么吧,现在回顾一下。
整体感觉,这是一种高级语言,可以用较少的代码实现功能,而且更容易阅读。

代码格式或语法

  • 代码行末不需要加";",直接换行即可;
  • 代码块用缩进区分,同意代码块缩进相同,比如下面这个,函数并没有用大括号,而是冒号后面的代码保持了相同的缩进
    # 7-4 一元二次方程求根公式
    def quadratic_equation(a, b, c):
        x1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 * a
        x2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 * a
        return x1, x2
    
    print quadratic_equation(2, 3, 0)
    

对于中文字符的支持

在代码文件头部添加

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

但用Pycharm的时候头部添加的是

# coding=utf-8

list tuple set dic

这几个表还得单独总结一下

可以返回多个值,上面代码就是个例子

再举一个不太恰当的例子

def firstCharUpper(s):
    return s[0].upper()+s[1:]
#    return s[0].upper(), s[1:]

print firstCharUpper('hello')
print firstCharUpper('sunday')
print firstCharUpper('september')

输出结果为

Hello
Sunday
September

而如果用注释的那行return则结果为:

('H', 'ello')
('S', 'unday')
('S', 'eptember')

return语句一次可以返回多个值,用逗号分开的话相当于返回了s[0].upper() 和 s
那么对于print语句,自然也是把s[0].upper() 和s[1:]当成两个值来打印了。这里可以看出Python的函数返回多值其实就是返回一个tuple。
加号用来连接字符串,得到的结果就是一个字符串。

函数可以有默认参数

如果调用的时候不传参数就使用默认的参数

def greet(s="world"):
    print "Hello, " + s + "."


greet()
greet('Bart')

分别输出Hello, world. 和Hello, Bart.

定义可变参数

def average(*args):
    summ = 0.0
    if len(args) == 0:
        return summ
    for x in args:
            summ += x
    avg = summ / len(args)
    return avg


print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)

一个*args就不限定参数类型和个数了
可变参数也不是很神秘,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。

利用for循环生成列表

这其实是for的一种,在别的语言中没见过的用法

生成列表

 [x * x for x in range(1, 11)]
 ```
输出

代码里面for语句似乎是返回了一个值给它前面的代码段使用
##复杂表达式
```python
tds = [generate_tr(name, score) for name, score in d.iteritems()]

for循环得到的name和score作为参数返回给前面的函数使用

条件过滤

def toUppers(L):
    return [x.upper() for x in L if isinstance(x, str)]


print toUppers(['Hello', 'world', 101])

多层表达式

俩for 双层循环

print [100 * x + 10 * y + x for x in range(1, 10) for y in range(0, 10)]
Comments
Write a Comment