首页 > 编程 > Python > 正文

《Python入门》笔记

2019-11-08 18:36:29
字体:
来源:转载
供稿:网友

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

输出结果为

HelloSundaySeptember

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

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

return语句一次可以返回多个值,用逗号分开的话相当于返回了s[0].upper() 和 s[1:] 那么对于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 avgprint 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)] ```输出

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

代码里面for语句似乎是返回了一个值给它前面的代码段使用##复杂表达式```pythontds = [generate_tr(name, score) for name, score in d.iteritems()]<div class="se-preview-section-delimiter"></div>

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

条件过滤

def toUppers(L): return [x.upper() for x in L if isinstance(x, str)]print toUppers(['Hello', 'world', 101])<div class="se-preview-section-delimiter"></div>

多层表达式

俩for 双层循环

print [100 * x + 10 * y + x for x in range(1, 10) for y in range(0, 10)]
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表