##课前思想
###GENTLEMEN CODE 1
* 着装得体
* 每天洗澡
* 适当用香水
* 女士优先
* 不随地吐痰、不乱扔垃圾、不在人群众抽烟
* 不大声喧哗
* 不插队、碰到别人要说抱歉
* 不在地铁上吃东西
* 尊重别人的职业和劳动
* 尊重别人隐私、不随便打听别人工资
* 与人保持安全距离(1米)
* 不要随便评价别人
###GENTLEMEN CODE 2
* 多去旅行,一年至少一个国家
* 多看数,电影,一年15本书,50+部电影
* 学好英语
* 保持不甘心、保持正能量
* 做事情一定要学会换位思考,要想此事会不会给别人造成不好的困扰
* 积极影响身边的人
###上节课回顾
1.变量
2.用户输入
username = raw_input() 2.7 alex
3.密码模块
LINUX VIM里的 TAB 键 和 WIN下的不一样 TAB不等于四个空格
4.基本流程处理
if username == user and password == passwd: print("welcome !") else: print("wrong username and password!")
5.猜年龄游戏
6.常量
python 无法限制变量被修改
常量名:全部大写 规则
const NAME ‘ALEX‘
MYSQL_CONNECTION = ‘192.168.1.23‘
7.环境变量
导入模块
1.标准库
import os
os.system("ipconfig")
os.popen("ipconfig").read()
2.第三方库 需要装上才能导入
pip命令 安装python 各种模块的命令
pip install
pip uninstall
import sys.path
正式上课
###什么是pyc
pyc是python的字节码文件
编译语言和解释性语言
python也是先编译后解释的语言
其实Python和Java/C#一样,也是一门基于虚拟机的语言,我们先来从表面上简单地了解一下Python程序的运行过程吧。
当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。
**简述Python的运行过程**
1. 在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。
2. 我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。
3. 当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
4. 当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。
**手动执行一个程序不会生成pyc文件**
导入的程序才会生成pyc 执行之前会比对pyc和源文件的修改时间,如果源文件改了时间会比pyc文件时间新,这个时候会重新编译生成pyc
###数据类型知识
####1、数字
* int(整型)
32位机器 -2^31 -- 2^31-1
64位系统上,-2^63 -- 2^63-1
* long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
* float(浮点型)
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
* complex(复数)
####2、布尔值
真或假 1或0
判断 0 是真还是假
>>> 0 is True False
或者
>>> 0 == True False
####3、字符串
"hello wirld"
**万恶的字符串拼接**
方法1:
>>> name = ‘alex‘ >>> print("my name is " +name+ " and you?") my name is alex and you?
*python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。*
####字符串格式化输出
name = "alex" print "i am %s " % name
#输出: i am alex
##列表
为了解决在多个变量里存储信息的繁琐,和在一个变量中存取大量格式相近信息的效率问题
语法:
name = ["MingLong","MingHu","Jack",22]
显示所有元素
>>> name [‘MingLong‘, ‘MingHu‘, ‘Jack‘, 22, 9, 23, 3, 4, 5, 6, 7, 87, 89, 9, 9, 4]
列表不仅可以存数字 字符串 还可以存变量
age = 9 name = ["MingLong","MingHu","Jack",22,age] name [‘MingLong‘, ‘MingHu‘, ‘Jack‘, 22, 9]
###列表切片
####列表下标从0开始,第一个元素下标为0
>>> name[0] ‘MingLong‘
-1 代表最后一个值,-2代表倒数第二个,以此类推
>>> name = ["MingLong","MingHu","Jack",22,age,23,3,4,5,6,7,87,89,9,9,4] >>> name [‘MingLong‘, ‘MingHu‘, ‘Jack‘, 22, 9, 23, 3, 4, 5, 6, 7, 87, 89, 9, 9, 4] >>> name[-1] 4 >>> name[-2] 9
array[起始下标:结束下标+1] 取 2到5个元素 name[1:5]
取数组前两个元素
name[0:1] [‘MingLong‘, ‘MingHu‘]
取最后4个元素
>>> name[-4:] [89, 9, 9, 4]
取前 5个元素
>>> name[:5] [‘MingLong‘, ‘MingHu‘, ‘Jack‘, 22, 9]
取前5个元素,再取后3个元素,还后再去第一个元素的第2个字母
>>> name[:5] [‘MingLong‘, ‘MingHu‘, ‘Jack‘, 22, 9] >>> name[:5][2:5] [‘Jack‘, 22, 9] >>> name[:5][2:5][1] 22 >>> name[:5][2:5][0] ‘Jack‘ >>> name[:5][2:5][0][1] ‘a‘
###列表的增删改
####修改某个元素的值
>>> name[1] = "WangMingHu" >>> name [‘MingLong‘, ‘WangMingHu‘, ‘Jack‘, 22, 9, 23, 3, 4, 5, 6, 7, 87, 89, 9, 9, 4]
####在指定下标插入元素
>>> name [‘MingLong‘, ‘MingHu‘, ‘MingGou‘, ‘Jack‘, 22, 9, 23, 3, 4, 5, 6, 7, 87, 89, 9, 9, 4]
####在列表结尾插入元素
>>> name.append("alex") >>> name [‘MingLong‘, ‘MingHu‘, ‘MingGou‘, ‘Jack‘, 22, 9, 23, 3, 4, 5, 6, 7, 87, 89, 9, 9, 4, ‘alex‘]
####从列表中移除某个元素
remove
>>> name.remove("MingGou") >>> name [‘MingLong‘, ‘MingHu‘, ‘Jack‘, 22, 9, 23, 3, 4, 5, 6, 7, 87, 89, 9, 9, 4, ‘alex‘]
del 删除 可以同时删除多个元素
del name[4:6]
###课间作业
写个列表,列表里包含本组所有成员名字
往中间插入两个临组成员的名字
取出第3-8的人列表
删除第7个人
把刚才加入的那2个其他组的人一次性删掉
把组长的名字加上组长备注
要求你隔一个人打印一个人
解答: