首页 > 代码库 > python 学习第二天 (上)

python 学习第二天 (上)

##课前思想
###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 TrueFalse

 

或者

>>> 0 == TrueFalse

 

####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个其他组的人一次性删掉
把组长的名字加上组长备注
要求你隔一个人打印一个人

 

解答:

 

python 学习第二天 (上)