PYTHON
Shell:!!
编程语言用户:
Python,,能在内核上执行的标准的二进制文件。
代码起源:
机器代码-->微码编程-->高级语言控制语言:
胶水语言框架:web,django:bytocode和开发工具
,
Python:
Cpython原始,
JythonJava
Ironpython.NET
Python:psycoPython,,,.,
由pypyPypypythonpythonPython,psycolinux3264位,MACOSXWindows32
,pythonc++,python:
1.
hello,world
程序文件交互式模式下的程序执行完成后难以再次运行将编写的程序保存至文件
A.python”
B.能够直接运行的模块文件通常称作脚本(
Python程序文件:
1.
第一步:写入程序
#!/usr/bin/python
第一行为shebang,
第二行通过pythonplatform
第三行打印Uname
第二步:给权限
第三步:执行
2.
!!
程序由模块构成
模块包含语句
语句包含表达式
表达式建立并处理对象
例如:“3+4
面向对象:
以指令为中心,由指令处理数据
如何组织代码解决问题
面向过程:
二.准备:
默认2.7
https://www.python.org/ftp/python/3.6.0/Python-3.6.0a1.tar.xz
:
C创建安装文件的路径
D
E
、创建新版本的软连接。
1、修改旧版本
2、创建新的软连接
3、检查python的版本
python-3.6.0
软连接创建成功
H、配置成功后,python3用不了,需进一步配置。添加至环境变量
1、PATH=$PATH:$HOME/bin:
2、PATH=$PATH:$HOME/bin:/usr/local/python3/bin
3、完成
这时python3就可以使用了。
三.P
程序=数据结构+算法
数据结构:
通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他的数据结构
python的最基本数据结构是序列
序列中的每一个元素被分配一个序号--即元素的位置,也称为索引,索引从0开始编号
python包含6中内建的数据序列:列表,元组,字符串
unicode字符串,buffer对象和xrande对象
1,第一个python程序:
>>>Print(“hello,world”)
Print函数表示的是将“”内部的命令打印到屏幕上,
图形用户界面,代码编辑器(支持代码补全,自动缩进)
新建项目:
命名规则:
E
注意:
1,命名文件名时建议只使用小写字母,数字和下划线
2,文件名不能以数字开始
注释:
注释的作用:在程序中对某些代码进行标注说明,增强代码的可读性
单行注释:以#开头,#右边的所有东西都被当做说明文字,而不是真正要执行的程序,只是起到说明作用
多行注释(块设备):”””
””
算数运算符:
程序执行原理(科普)
1.
中央处理器,是一块超大规模的集成电路
负责处理数据、计算
2.内存
临时存储数据(断电之后,数据会消失)
速度快
空间小
价格高
3.硬盘
永久存储数据
速度慢
空间大
价格便宜
1,程序运行之前,程序是保存在硬盘中的
2,,当要运行一个程序时
程序要执行,首先要被加载到内存
程序是用来处理数据的,而变量是用来存储数据的
Python的关键要素:
要素一:基本数据类型
任何程序语言都必须能够表示基本数据项
python中的基本数据类型有:
E
True
Bool(0)
False
Bool([])
False
Bool([0])
True
(在Python中所有的字符串都需要用单双引号引起来,数值无需引号)
E
2.浮点类型:
Eg:
3.字符串:三种情况
let
C:\north\tmp
D.
E:字符串的基本运算
字符串的拼接:
字符串的格式化问题
>>>name=”bob”
字符转化问题:
>>>a=123.1
>>>b=int(a)
>>>b
转义字符:
要素2:对象引用(变量)
1.python将所有数据存为内存对象
3.内建函数type()用于返回给定数据项的数据类型
5.变量命令规则
6.命令惯例
关键字就是在python
关键字具有特殊功能和含义
开发者不予许定义和关键字相同的名字的标识符
通过以下命令可以查看python
Print(keyword.kwlist)
keyword
print(keyword.kwlist)
表示列出所有系统上已经命名的变量名
02.
1.在定义变量时,为了保证代码格式。=
2.在python
A.每个单词都使用小写字母
_
注意:python
3.驼峰命名法:
要素三:组合数据类型
1.数据结构:通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合
2.python常用的组合数据类型:
'is'
'pig'
列表相加:
列表添加数字:
>>>a.append(5)
>>>a
[1,2,5]
列表插入数字:
Eg:>>>a=[1,2,5]
>>>a.insert(1,2)
>>>a
[1,2,2,5]
列表修改:
>>>a[1]=0
>>>a
[1,0,2,5]
数字出现的次数:
List_a.count(5)
表示显示5出现的次数
移除数字:
出栈:
[1,0,3,2,5]
0
从左向右数角标为0开始
可做切片使用)
切片问题:(切片本身会创造新的内存对象,切片自身不可变)
ȡ到n-1位
Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。
引
1 2 3 | a=[1,2,3,4,5,6] b1=#省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表 print(b1) |
1 2 | b=a[0:-1:1#从位置0开始到结束,每次增加1,截取。不包含结束索引位置 print(b) |
c1=a[:3#省略起始位置的索引,以及步长。默认起始位置从头开始,默认步长为1,结束位置索引为3
print(c1)
1
2
c=a[0:5:3#从第一个位置到第留给位置,每3个取一个值
print(c)
1 2 | d=a[5:0:-1#反向取值 print(d) |
1 2 | d1=a[::-1] print(d1) |
Eg:
"xiaoxingyun"
'xia'
Eg:
"xiaoxingyun"
'n'
'u'
'y'
'g'
Eg;
这个时候我们可以还可以反向的取出一格字符串
[python]copy
"xiaoxingyun"
'nuygnixoaix'
'nynxax'
D.集合类型:
Eg;
{2}
字典删除
1
...
F.列表是可变序列,元组是不可变序列
G.Python中,组合数据类型也是对象,因此其可以嵌套
H.实质上,列表和元组并不是真正存储数据,而是存放对象引用
I.python对象可以具有其可以被调用的特定“方法(函数)”
J.元组,列表以及字符串等数据类型是“有大小的”,也即,其长度可使用内置函数len()测量,(用len()可以获取内部元素的个数)
==
type
元组和集合不一样,元组是有序列的所以不一样,集合是无序的所以是true,
7.按位运算
要素4:逻辑操作符
1.逻辑运算是任何程序语言的基本功能
2.python提供了4组逻辑运算
A.身份操作符
Is:判定左端对象引用是否相同于右端对象引用:(就是看左右是否引用了同一个对象)也可以与None进行:
Eg:
False
Eg:
True
(所以说对象有可能不同,但是对象所属的类型可以相同)
And,or,not
要素5:控制流语句
控制流语句是过程式编程语言的基本控制机制
python的常见控制流语句:
If后边跟着的语句必须要有4个空格,无花括号
要素6:算数操作符
1.python提供了完整的算数操作符
2.很多的python数据类型也可以使用增强的赋值操作符,如+=,-=等
3.同样的功能,使用增强型赋值操作符的性能较好
4.python的int类型是不可变得,因此,增强型赋值的实际过程是创建了一个新的对象来存储结果后将变量名执行了重新绑定(m=m+1等于m+=1)
C.
D.+,-,*,/。//
整数和浮点数进行运算时,自动转换为浮点数
现实中,具有实际功能的程序必须能够读取输入(如从键盘或文件中),以及产生输出,并写到终端或文件中;
1.python的输入/输出
Python3:print()函数
Python2:print语句
Eg:
2.
5.
6.
关于冒泡算法问题总结:
冒泡排序的时间复杂度是O(N^2)
冒泡排序的思想
比如有五个数
第一趟:
第一次比较
第二次比较
第三次比较
第四次比较
经过第一趟比较后
第二趟
第三趟
第四趟
比较完成
冒泡排序原理n,n-1n-1()
defbubbleSort(nums):
forinrange(len(nums)-1
forinrange(len(nums)-i-1
if>+1]:
+1=+1
return
=5,2,45,6,8,2,1]
Python中的合法标识符
1.不能以数字开头
2.不能包含非法字符
3.数字不能作为标识符
4.不能包含空格
5.不能包含运算符
6.python保留关键字不能作为标识符
python
例1new1
在demo1p=1
在demo2
Print(demo1.p)
例2
创建文件夹为old1,不是同级关系,所以导入的时候加上包名
例:old1.old_damo1
print(old1.old_damo1.p)
例3
demo1
a=1
b=2
c=3
Demo2
a,b,c*
print(a,b,c)
或者不希望*_init_.py
但是他单独导入还是可以的就是*
???????_init__all_
_init_.py
在子包下建立_init_.py
在不同级的一个模块中调用,调用的时候随便_init_.py
例4new1old_damo1.py_init_.py
print("hello,world")
new1
p
他会自动的触发_init_.pyas
批量导入:
在_init_.py
第三天:
例题
sys
sys.setrecursionlimit(1000)
taijie(x):
x==x==2:
n
#n>2
func(n-12)
print(func(10))
例题:
20
func():
10
print(str(age))
30
func()
print(age)
20
例题2
30
在变量之前加上global
没有赋值的放在一块赋值的放在一块,
def menu(): print("1.") print("2.") print("3.") print("4.") print("5.") print("6.") print("-" * 25) stu = [] def is_id_exist(stu_id, stu_list = stu): for temp in stu_list: if temp["id"] == stu_id: return True return False print("-" * 25) print(" v1.0") while True: menu() menu_id = int(input("")) # 1. if menu_id == 1: print("") name = input(" ") age = input(" ") #stu_id = input(" ") while True: stu_id = input(" ") if (not is_id_exist(stu_id)): break print("ID") stu_info = {} stu_info["name"] =name stu_info["age"] = age stu_info["id"] = stu_id stu.append(stu_info) print("") # 2. elif menu_id == 2: print("") stu_id = input(" ") if (is_id_exist(stu_id)): cnt = 0 for temp in stu: if temp["id"] == stu_id: break; print("") else: print("!") # 3. elif menu_id == 3: print("") stu_id = input(" ") if (is_id_exist(stu_id)): for temp in stu: if temp["id"] == stu_id: break temp["name"] = input("") temp["age"] = input("") while True: stu_id = input("") if (not is_id_exist(stu_id)): temp["id"] = stu_id break print("") else: print("ID") # cnt = 0 # for temp in stu: # if temp["id"] == stu_id: # name = input(" ") # age = input(" ") # while True: # stu_id = input("") # if (not is_id_exist(stu_id)): # temp # id = input(" ") # print("") # break # print("ID") # 4. elif menu_id == 4: print("") stu_id = input(" ") if (is_id_exist(stu_id)): cnt = 0 for temp in stu: if temp["id"] == stu_id: print("") print("") print("name age id") for temp in stu: print("{} \t{}\t {}".format(temp["name"], temp["age"], temp["id"])) break print("ID") # 5. elif menu_id == 5: print("") print("name age id") for temp in stu: print("{} \t{}\t {}".format(temp["name"], temp["age"], temp["id"])) # 6. elif menu_id == 6: print("") flag = input("Y(N)") if flag == "Y": break; else: print("")