第一周笔记
一、基础知识:
1.1 Python的两种运行方式,分为交互式模式和文件运行模式,同时python还具有
- 易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
- 2.易于阅读:Python代码定义的更清晰。
- 3.易于维护:Python的成功在于它的源代码是相当容易维护的。
- 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
- 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
- 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
- 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
- 8.数据库:Python提供所有主要的商业数据库的接口。
- 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
- 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力
1.2 运算符表达式和变量
1.2.1python中支持的运算符如下
|
运算符 |
描述 |
实例 |
|
+ |
加 - 两个对象相加 |
a + b 输出结果 30 |
|
- |
减 - 得到负数或是一个数减去另一个数 |
a - b 输出结果 -10 |
|
* |
乘 - 两个数相乘或是返回一个被重复若干次的字符串 |
a * b 输出结果 200 |
|
/ |
除 - x除以y |
b / a 输出结果 2 |
|
% |
取模 - 返回除法的余数 |
b % a 输出结果 0 |
|
** |
幂 - 返回x的y次幂 |
a**b 为10的20次方, 输出结果 100000000000000000000 |
|
// |
取整除 - 返回商的整数部分 |
9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
1.2.2 变量以及变量的命名规范
变量是指向特定值的名称,变量的命名必须符合以下规范:
1. 变量名只能是字母数字下划线
2. 变量的第一个字符不能是数字
3. 关键字不能是变量名(False ,def ,if ,raise,None ,del ,import return,True ,elif ,in ,try,and ,else ,is ,while,as ,except ,lambda ,with,assert ,finally ,nonlocal ,yield,break,for ,not,class,from ,or,continue,global,pass)
二、Python基本数据类型:
python的数据类型主要包括(数字,字符串,布尔型,列表,字典)
列表和元组的最主要区别在于,列表是可以修改的,而元组不可以
列表的操作:
1.创建列表
列表的创建很简单,只要用逗号将不同的元素隔开,然后使用方括号括起来即可
list1 = [1,2,3] list2 = [‘a’,’b’,’c’] list3 = [1,2,’a,’b’’]
访问列表中的元素
列表中所有的元素都有编号----从0开始递增,可以使用列表的编号来访问列表中的元素:
list1 = ['a','b','c'] list1[1] 'b'
也可以使用负数,即从右往左获取列表中的元素
list1 = ['a','b','c'] list1[-1] 'c'
实例:输入1-7 显示对应星期几
#!/usr/bin/env python #!-*-coding:utf-8-*- #!@Author:Chauncy weeks = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ] week = input("Please input week(1-7):") week_number = int(week) week_name = weeks[week_number-1] print(week_name)
2.切片
除了索引来访问单个元素之外,还可以使用切片来访问特定范围内的元素,即是用两个索引,中间用冒号隔开:
list1 = ['a','b','c'] list1[1:2] ['b'] list1[1:3] ['b', 'c']
两个索引分别界定了列表的边界,但要注意,索引的第一个元素是包含在切片内的,但第二个不包括,即左闭右开
切片有以下几种简写
list1 = [‘a’,’b’,’c’] list1[:] #表示整个索引 list1[:1] #等价于list1[0:1] list1[0:] #等价于list1[:],即整个索引
实例 从URL中提取域名
#!/usr/bin/env python #!-*-coding:utf-8-*- #!@Author:Chauncy url = input("Please input the URL:") domain = url[11:-4] print(domain)
切片的步长
numbers=[1,2,3,4,5,6,7,8,9] numbers[1:10:2] [2, 4, 6, 8]
即指定中间可以跳过一些元素,步长可以为负数,即从右往左提取,但不可以为0
- 列表的数学运算
可以使用加法来拼接两个列表
[1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
将序列于数值x相乘时,将重复这个序列x次来创建一个新的序列
[1,2,3] * 4
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
- 成员检查
检查某个元素是否包含在序列中,可以使用in运算符,此时将返回布尔值:True False
>>> list1 = ['a','b','c'] >>> 'a' in list1 True >>> 'd' in list1 False
- 列表的基本操作
- 修改列表:给元素赋值
>>> x = [1,1,1] >>> x[2] = 2 >>> x [1, 1, 2]
- 删除元素:
>>> x [1, 1, 2] >>> del x[2] >>> x [1, 1]
- 切片赋值:
>>> name = ['P','e','r','l'] >>> name[2:] = list('ar') >>> name ['P', 'e', 'a', 'r']
通过切片的赋值,可以将切片替换为长度与其不同的序列,使用切片赋值还可以在不删除原有元素的情况下插入新的元素,也可以执行步长不为1的切片赋值
- 列表的方法
- append
将一个对象附加到列表的末尾,不返回修改之后的列表,而是直接修改旧的列表
>>> listq = [1,2,3] >>> listq.append(4) >>> listq [1, 2, 3, 4]
- clear
清空列表,类似于切片listq[:]=[]
>>> listq [1, 2, 3, 4] >>> listq.clear() >>> listq []
- copy
赋值列表,常规复制只是将另一个名称关联到列表
>>> a = [1,2,3,4] >>> b=a >>> b[1] = 4 >>> a[1] 4
如果要使得a和b指向不同的列表,就必须将b关联到a的副本
>>> a = [1,2,3,4] >>> b = a.copy() >>> b[1] = 4 >>> a[1]
2
- count
统计指定元素在列表中出现了多少次
>>> a = [1,1,1,2,3,4] >>> a.count(1) 3
- extend
能够将多个值附加到列表的末尾,即可以用一个列表来扩展另一个列表
>>> a = [1,2,3] >>> b = [4,5,6] >>> a.extend(b) >>> a [1, 2, 3, 4, 5, 6]
- index
在列表中查找指定值第一次出现的索引,值不存在时触发ValueError异常
>>> a = [1,2,3,9,8,5,6,8,9] >>> a.index(8) 4
- insert
插入一个对象到列表中,前面为插入位置,后面为插入值
>>> a = [1,2,3,4] >>> a.insert(2,5) >>> a [1, 2, 5, 3, 4]
- pop
从列表中删除一个元素(末尾的最后一个元素),并返回这一元素(pop是唯一既能修改列表又返回一个非None值额列表方法)
>>> a = [1,2,3] >>> a.pop() 3
- remove
用于删除第一个为指定值的元素(修改列表且不返回值)
>>> a = [1,2,3,4,5] >>> a.remove(5) >>> a [1, 2, 3, 4]
- reverse
按照相反的顺序排列列表中的元素
>>> a [1, 2, 3, 4] >>> a = [1,2,3,4,5] >>> a.reverse() >>> a [5, 4, 3, 2, 1]
- sort
用于对列表的排序,意味着对原来列表的进行修改,而不是返回排序后的列表的副本,如果为了获取排序后列表的副本可以用sorted方法
>>> a = [2,5,8,3,4] >>> a.sort() >>> a [2, 3, 4, 5, 8]
sorted
>>> a [2, 3, 4, 5, 8] >>> b = a.sort() >>> b >>> b = sorted(a) >>> b [2, 3, 4, 5, 8]
元组为不可修改的序列
Python之条件判断:
If-else:
Python 编程中 if 语句用于控制程序的执行,基本形式为:
if 判断条件:
执行语句……
else:
执行语句……其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句,具体例子如下:
实例
#!/usr/bin/python # -*- coding: UTF-8 -*- flag = False name = 'luren' if name == 'python': # 判断变量否为'python' flag = True # 条件成立时设置标志为真 print 'welcome boss' # 并输出欢迎信息
else: if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
实例如下:
实例
#!/usr/bin/python # -*- coding: UTF-8 -*- num = 5 if num == 3: # 判断num的值 print 'boss' elif num == 2: print 'user' elif num == 1: print 'worker' elif num < 0: # 值小于零时输出 print 'error' else: print 'roadman' # 条件均不成立时输出 print name # 条件不成立时输出变量名称
python之while循环:
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 判断条件:
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。、
#!/usr/bin/python count = 0 while (count < 9): print 'The count is:', count count = count + 1
print "Good bye!"
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
# continue 和 break 用法
i = 1 while i < 10: i += 1 if i%2 > 0: # 非双数时跳过输出 continue print i # 输出双数2、4、6、8、10 i = 1 while 1: # 循环条件为1必定成立 print i # 输出1~10 i += 1 if i > 10: # 当i大于10时跳出循环无限循环
如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:
实例
#!/usr/bin/python # -*- coding: UTF-8 -*- var = 1 while var == 1 : # 该条件永远为true,循环将无限执行下去 num = raw_input("Enter a number :") print "You entered: ", num print "Good bye!"
注意:以上的无限循环你可以使用 CTRL+C 来中断循环。
循环使用 else 语句
在 python 中,while … else 在循环条件为 false 时执行 else 语句块:
实例
#!/usr/bin/python count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5" break
浙公网安备 33010602011771号