前些天,有个姑娘说想学Python,我一听,双眼放出万丈光芒,心想如果我教会她,万一姑娘一时高兴,以身相许,老妈就再也不用担心我了,那岂不是美滋滋。于是准备要怎么教她学编程,夜晚,躺在床上,回忆自己的编程经历,想起高一时与朝辉一起学习VBasic的点点滴滴,想起大一时为了考C语言二级的突击学习,真是岁月如梭。一顿感慨后,心中已有了大致的想法,于是有了这篇文章。
几乎所有的编程语言,都是由3种基本的程序结构组成,顺序,循环,选择,弄懂这三种后,就可以写程序了。下面且听我一一道来。
### print
先来看看print语句
- print('邓世龙') # 字符串要用引号括起来
复制代码 ### 顺序结构
然后来看顺序结构, 顺序结构很容易理解,就是程序是一句句往下执行,
接下来看看循环结构。现在我们要完成一个计算任务,计算1 + 2 + 3 + ... + 10的和,我们可以从1一直加到10,这就需要循环。在绝大多数编程语言里,都提供for或者while来完成循环,这里先来看for, 而在这之前,先了解下list, 也就是列表。
### list(列表)
list相当于其它编程语言里的数据,主要是用来存放统一类型的数据
- print(dir(x)) # 显示列表的变量和方法
复制代码- ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
复制代码 ### range
1到6的列表手写问题也不大,但1到100,1到1000的列表如果手写会疯掉的,所以Python提供了range这个函数。
- z = list(range(1, 10, 2))
复制代码- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
复制代码- [1, 2, 3, 4, 5, 6, 7, 8, 9]
复制代码 ### 循环结构 for
下面就是for循环的语法,注意for循环后面有冒号,之后print还要缩进
- for i in range(1, n + 1):
复制代码 现在我们就可以编写求1 + 2 + 3 ... + 10的和的程序
- # 循环,for循环求和, 求1 + 2 + ... + 10的和,
复制代码- for i in range(1, n + 1):
复制代码 ### 选择 if
现在我们要求1到10以内,所有偶数的和,这就会用到选择。
那么如何判断是偶数呢?对2取余就行了,如果余数是0,就是偶数
- print(4 % 2 == 0) # % 是求余操作
复制代码 现在加上if判断,求1到10以内所有偶数的和
- for i in range(1, n + 1):
复制代码 #### 选择 and
如果要求30以内,既能被3,又能被5整数的所有整数的和,这时候就会用到and操作
- for i in range(1, n + 1):
复制代码- if i % 3 == 0 and i % 5 == 0: # 有15,30
复制代码 #### 选择 or
如果要求10以内,能被3,或能被5整数的所有整数的和, 这时候就会用到or操作
- for i in range(1, n + 1):
复制代码- if i % 3 == 0 or i % 5 == 0: # 有 3,5,6,9,10
复制代码 #### continue 进入下一次循环
求10以内,能被3或能被5整数, 但不能被2整除的所有整数的和,这时候可以继续使用and和or的组合来判断,但更方便的,还是用continue,
- for i in range(1, n + 1):
复制代码- if i % 3 == 0 or i % 5 == 0: # 有 3,5,9
复制代码 ### 循环 while
for循环也可以用while循环来代替, while后面跟着判断条件,如果条件为True, 也就是为真,就会一直执行while循环里的内容; 如果为False,就会跳出循环。例如求1 + 2 + ... + 10的和,用for循环编写如下
- for i in range(1, n + 1):
复制代码 改成while,如下
[code]while i |
|