中间断了一段时间,现在把慕课网上《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)]