python入门学习笔记

python入门学习笔记

1. 常见的DOS命令

1.dir 查看当前目录下的文件(夹) --> dir

  1. cd 进入到指定目录 (.表示当前目录 …表示上级目录) --> cd 文件夹名称

3.md 创建目录 --> md 文件夹名称

4.rd 删除目录 --> rd 文件夹名称

5.del 删除文件 —> del 文件名称

6.cls 清除屏幕

2. Python的环境变量(environment variable)

系统变量.png

path环境变量中保存的是一个一个路径,当我们输入DOS命令时,系统会先在在当前目录下查找,找到则返回,没有就去path环境变量的每个路径依次去寻找,知道找到为止,最终都没有找到,则报 “xxx” 不是内容或外部命令,也不是可运行的程序或批处理文件。
这个路径一般用在需要频繁访问的文件中,这样可以在任意的位置访问到这些文件(一般在用户path环境变量中,添加完成后重启DOS名称窗口)。

3. 二进制

推荐一个小工具:[ binary viewer ]这个是二进制查看器,它能够帮助用户查看电脑中的所有文件格式,同时支持显示以十进制,八进制,十六进制和文本 ASCII码或统一的字符编码标准)的格式数据,并且支持搜索,保存文件 复制 粘贴 文件至剪贴板!

4.文本及字符集

文本分为纯文本和富文本:纯文本,只能单纯的保存文本内容,不能保存字体图片颜色,富文本可以。

常见的字符集:

1.ASCII: 美国人编码,使用7位来对美国常用的字符进行编码 包含128个字符

2.ISO-8859-1: 欧洲的编码,使用8位。包含256个字符

3.GB2312:国标码 中国编码

4.GBK: 国标码 中国编码

5.Unicode:万国码,包含世界上所有的语言及符号 ,这种编码有多种实现,UTF-8(这个是由1~5个字节来表示字符的) 、UTF-16(这个是由2~4个字节来表示)、UTF-32(这个是由固定的4个字节表示的)

5. 编译型语言与解释型语言

编译型语言:
- c语言
- 特点: 执行速度特别快,跨平台比较差
解释型语言:
- python js java
- 执行速度比较慢,跨平台比较好

6. python的介绍

Life is short you need Python (人生苦短,我用Python)

用途:

  • WEB应用
  • 爬虫程序
  • 自动化运维
  • 大数据(数据清理)
  • 云计算
  • 桌面软件/游戏
  • 人工智能

7. Python的开发环境

开发环境搭建就是安装python的解释器

Python的解释器主要分为:

  • CPython : 用C语言编写的python解释器

  • pypy: 用python语言编写python解释器

  • IronPython : 用.net编写的python解释器

  • Jython: 用java编写的python解释器

在https://www.python.org/ 下载 并安装

8. python的交互界面

就是win+R–> cmd --> python 进入:

9. python和sublime的整合

在sublime中执行python代码,ctrl+b 自动在sublime内置的控制台中执行,在这种执行方式,在某些版本的sublime中有对中文、input()函数不支持的,建议使用sublimeREPL来运行。

10. Python的基本语法

  • Python中严格区分大小写
  • python中的每一句就是一条语句,每条语句可以换行结束
  • python每一行语句不要过长(规范中建议每一行不要超过80字) 在sublime设置超长线: 首选项–>设置-用户 --> 添加 “rulers”:[80], 即可
  • 可以使用 ''这个符号来实现不换行多行显示
  • python是缩进严格语言
  • python的注释 是使用 # 来表示的

11.字面量 、变量与标识符

字面量:字面量就是一个一个的值,比如 ‘1’ ‘2’ ‘hello’ 字面量表示的意思就是它的字面的值,在程序中可以直接使用字面量

变量: 就是可以根据不同的字面量来表示不同的意思,一般在开发中,很少直接使用字面量,都是将字面量保存在变量中,通过变量来引用字面量[Python中使用变量不需要申明,但是不能使用没有赋值的变量]

标识符: 可以自主命名的内容都是属于标识符(例如:变量名、函数名、类名),且必须准守如下规则:

  • 含有字母数据,但是不能数字开头
  • 不能是python的保留字
  • 命名规范需准守下划线命名法、驼峰命名法

12. 类型

12.1 数值

数值指的就是变量的值的类型,也就是可以为变量赋值哪些值,分为三种:整数 、浮点数、复数

整数:一般是int类型,且python中的整数的大小是没有限制的,如果数值过大,可以使用下划线作为分隔符[例如:123_ 456_789],十进制的数字不能以0开头。

使用进制的整数[只要是数字一定是以十进制的形式来显示的]:

  • 二进制: 0b开头
  • 八进制:0o开头
  • 十六进制:0x开头

13. 字符串

13.1 长字符串

使用三重引号来表示一个长字符串(可以多行) ‘’’ XXX ‘’’

13.2 转义字符

用 ’ \ '表示转义

13.3. 格式化字符串

字符串只能与字符串拼接

a = "abc"+ "haha"
print("a=",a)  // a= abchaha

使用占位符 %s

b = "hello %s"%"孙悟饭"
print("b=",b) // b= hello孙悟饭
b = "hello %3s"%"孙悟饭" // %3s 表示占位符最少是3个及3个以上,不足3个用空格填充
b = "hello %3.5s"%"孙悟饭" // %3.5s 表示占位符最少是3个,最多5个 不足3个用空格填充,超过3个

print("a= %s"%b)

在需要格式化的字符串前面加一个F(f)

c = f'hello{a}{b}'
print(f'a={a}') 

字符串的乘法 * {如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回}

d = 'abc'
d =d*2
print('d = %s'%d) // abcabc 

14.布尔值(bool)与空值(None)

布尔值主要用来做逻辑判断 True False,布尔值实际上属于整形,True就相当于1,False相当于0

None 专门表示不存在 ,他属于字符串

qw

15. 类型检查

例如:

a = 123  # 数值
b = '123' #字符串
print('a = ',a)  // a = 123 
print('b = ',b)  // b = 123 

type() 用来检查值的类型 
c = type(a)   // 
print(c) // 会出现 str int float NoneType bool  


print(type(1))  // <class 'int'>
print(type(1.5))  // <class 'float'>
print(type(True))  // <class 'bool'>
print(type('hello'))  // <class 'str'>
print(type(None))  // <class 'NoneType'>

16. 对象(object)

python 是一门面向对象的语言 (万物皆对象)

程序运行当中,所有的数据都是存储在内存当中然后在运行的

什么是对象? 对象就是内存中专门用来存储指定数据的一个区域 ,对象实际上就是一个容器,专门用来存储数据的

对象的结构:

每个对象都要保存三种数据:

-id (唯一标识) 可以通过id()函数来查看对象的id,id是由解析器生成的,就是内存地址,对象一旦创建了,就不会改变
-type (类型) 用来表示当前对象所属的类型 int str bool ,类型决定了对象的功能 可以用type()函数来查看类型
-value (值) 内存中存储的具体的数据

##17. 类型转换
类型转换不是改变对象的类型,而是根据当前对象的值创建一个新的值 ,转换函数有 int() 、 float() 、bool() 、str() 、

a = 'hello'
b = 124
print(a+b)

a = True 
int(a) // 将a的类型转换成整型,他不会对原来的变量产生影响
print(a) // True
c = int(a)+1
print(c) // 2

18. 预算符 TODO 20200127

18.1. 算术运算符 (±*/)

18.2 赋值运算符(=)

18.3 关系运算符( <、>、!=、==、<=、>= )

18.4 逻辑预算符( not and or )

18.5 非布尔值的逻辑运算符 (略)

18.6 条件运算符 ( if{} else{} )

18.7 运算符的优先级

先乘除、后加减

先and 后or

19. if else 语句

19.1 input() 函数 【 input([prompt])】

这个函数用来获取用户的输入,input()调用后,程序会立即暂停,等待用户输入。

// 获取用户输入的用户名
userName = input("请输入你的用户名:")

20 while for 循环语句

21 demo 练习

21.1 水仙花练习: 水仙花是指n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身(例如:13+53+3**3=153),求1000以内所有的水仙花数?

i =100
while i<1000:
	分析:abc=i ==> a*100+b*10+c=i a**3+b**3+c**3 = i
	a = i // 100
	b = i // 10 % 10
	c = i % 10
	if (a**3+b**3+c**3) == i:
		print('水仙花数=',i)
	i+=1


水仙花数= 153
水仙花数= 370
水仙花数= 371
水仙花数= 407
[Finished in 0.5s]

21.2 求100以内所有的奇数之和?

21.3 求100以内所有7的倍数之和以及个数?

21.4 获取用户输入的任意数,判断其实否是质数,质数是只能被1和它自身整除的数,1不是质数也不是合数?

21.5 输入一个数,判断是否是质数:

i = 2 
falg = True 
while i<num:
	能整除,则说明num是质数 
	if num %i ==0:
		print(num)
		falg = False
	i+=1

if falg:
	print("是质数")
else:
	print("不是质数")


结果:
是质数
[Finished in 0.7s]

21.6 99乘法表

22、列表 【类似于java的集合】

my_list = [] 创建了一个空列表

/# 列表中可以存储多个元素: 那如何存储?

可以列表中直接赋值 : my_list =[10,12]

我们可以通过索引来获取数据 index my_list[0] ==> 10 ,索引可以是负数,-1表示倒数第一个

len函数 : 获取列表中的长度

append函数: my_list.append(‘紫霞’) ==> [10,12,‘紫霞’]

insert函数: my_list.insert(1,‘紫霞’) ==> [10,‘紫霞’,12] // 这个是指定位置的新增

min(my_list)函数: 获取列表中最小的数据

max()函数: 获取列表中最大的数据

my_list.index(‘10’[i,j]) //获取第一个匹配的下标 i,j ==> 起始位置,结束位置

my_list.count(‘10’) // 统计指定元素在列表中出现的次数

22.1 列表中的切片: 语法{ 列表[起始,结束,[步长]] } //步长:就是表示每次获取元素的间隔,默认是1

切片: 获取列表中的某一个部分

status = [‘张三’,‘李四’,‘王五’,‘abc’,‘bcd’]

通过切片来获取指定的元素:

例如:
status[0,2] ==> [‘张三’,‘李四’]
status[:2] ==> [‘张三’,‘李四’]
status[:5,2] ==> [‘张三’,‘王五’]

22.2 列表中的+与*

my_list = [1,2,3] + [4,5,6] => [1,2,3,4,5,6]

*号可以将列表重复指定的次数:

my_list =[1,2,3]*2 ===> [1,2,3,1,2,3]

22.3 in 和not in 的区别

in用来检查指定元素是否是在于列表中,not in相反

‘123’ in my_list ===> True

##23 序列 sequence
序列是python中最基本的一种数据结构(就是值计算机总存储的方式)

序列将我们的数据保存一组有序的数据,所有的数据再序列中都是唯一的位置,并且薛烈中的数据会按照添加的顺序来分配索引。

序列分为:

-可变序列 列表(list)
-不可变序列: 字符串(str)

24. 遍历 for

24.1 for语法

for 变量 in 序列: 
	代码块...
	代码块中的代码会执行多次的


Demo:创建一个循环,打印0-3四个数字

//通过while来遍历
i= 0
while i<4:
	print(i)
	i+=1

// 通过for循环来遍历
for s in stus:
	print(s)

25. range函数

用来生成自然数的序列

range(5) ==> // [0, 1, 2, 3, 4]

该函数需要三个参数 range([起始位置],结束位置,[步长]) 常与for循环配合使用

26. 元组

-元组是一个不可变的序列,他的操作基本上与列表是一致的,所以在操作元组时就把元组当成一个不可变的列表就ok了,一般当我们希望数据不改变时,就使用元组,其余可以使用序列

26.1 创建元组 使用 ()来创建元组

my_tuple = ()  // 创建了一个元组

my_tuple = 10,20,30  // 如果不是空的元组  可以不用写(),但是至少要有一个值以上

26.2 元组的解包

a,b,c = my_tuple   // 元组的解包  a = 10,b =20,c =30 解包就是讲元组当中每个元素赋值给每一个变量 
可以用解包的原理处理两个变量值的交互:
例如: 
	a =100  
	b =300
	// 交互前 a =100 b =300  
	a,b = b,a  
	//交互后 a =300 b =100 	 

	若不用解包,需要这样写:
	y =b
	x =a 
	a =z 
	b =x

元组中的*号,需要获取元组中的一部分值

my_tuple =10,20,30,40
a,b,*c =my_tuple // 在变量前面加*号,可以将剩余元组中的元素获取到
print(a,b,c) // a =10,b=20,c=30,40

*号也可以这样写
a,*b,c =my_tuple   // a =10,b=20,30,c=40
*a,b,c = my_tuple // a =10,20 ,b =30,c=40

27. 字典 dict

字典属于一种新的数据结构,称为映射(mapping)

字典的作用和列表类似,都是存储对象的容器,列表存储数据的性能很好,但是查询数据的性能的很差,可以理解为java中的Map<key,value>集合。

dict={
	'name':'孙悟空',
	'age',18,
	'gender','男'
}

获取值  dict['name']  ----> 孙悟空 

27.1 创建字典

  1. 直接用{}创建字典

    dict={
    ‘name’:‘孙悟空’,
    ‘age’,18,
    ‘gender’,‘男’
    }

  2. dict()函数创建字典(这种方式创建的key都是字符串的)

    d = dict(name=‘孙悟空’,age=18,gender=‘男’)

  3. 也可将一个包含双值子序列(序列中只有两个值,value中也是两个值)的序列转换为字典

    list = [(‘name’,‘孙悟空’),(‘age’,18),(‘gender’,‘男’)] // 这个就是双值子序列

    d = dict(list)

    print(d) // {‘name’: ‘孙悟空’, ‘age’: 18, ‘gender’: ‘男’}

27.2 字典的函数

len() 获取字典的个数

in /not in 这个是存在在字典中 ‘hello’ in /not in dict 返回True/False

dict.get(key[,default]):获取字典中的值 ,没有返回一个None,与dict[‘key’]这种取值不同的地方,不会报keyError错。

dict.setdefault(key[,default]): key如果存在,不会对字典作任何操作,不存在则添加。

dict.update([other]): 会其他字典中的key-value添加到当前字典中。

dict.del(): 删除字典 del d[‘age’] 删除age这个键值对; del d 删除字典

dict.popitem(): 随机删除字典中的一个键值对,一般都会删除最后一个键值对;删除后返回删除后的元素键值对保存在一个元组中;删除一个空字典时,会报错。

dict.pop(key[,default]): 删除字典中的键值对,返回删除后的那个值,如果删除不存在的会报错。

list = [('name','孙悟空'),('age',18),('gender','男')]  // 这个就是双值子序列

d = dict(list)

d.pop('z','这个是默认值')  ---->  // 这个是默认值
d.pop('z')  ----> // 报错 keyError
del d['z']  ----> // 报错 

dict.clear(): 清空字典

dict.copy(): 用户字典进行浅复制 只会复制对象中的值。

浅复制: 只会简单的复制对象内的值,如果值也是一个可变对象,这个可变对象不会被复制。

27.3 字典的遍历

keys(): 该方法会返回字典的所有key,并返回一个序列list

values():获取所有的值,返回序列list

items(): 会返回字典中所有的项,

for k,v in dict.items():
	print(k,v) // k,v = key,value键值对

28.==与is (略)

== -----> 这个可以理解就是java中的等于

is -----> 这个可以理解就是java中的equ()

29. 异常

try:
	代码块
except:
	异常块

30. 集合

集合:只能存储不可变对象,且无序的,不能出现重复的元素(唯一的)

创建集合方式:

1.使用{}来创建集合 s ={1,2,3,4,5} type(s)----> <class ‘set’>

  1. 使用set() 来讲序列和字典转换成集合 set([1,2,3,4,5,3,4,5]) // {1,2,3,4,5} 因为结合具有唯一性

add()函数:向集合中添加元素

s ={1,2,3,4,5}
s.add(10)  // s ={1,2,3,4,5,10}

update(): 将集合中国元素添加到当前集合

s1 = set('hello')
s1.update(s)
dict = {'name': '孙悟空', 'age': 18, 'gender': '男'}
s1.update(dict) // 这个会将字典中的key添加到集合中。

pop(): 随机删除一个元素,并返回删除的元素。
s1.pop()
remove(key):删除对应的key

copy(): 集合的浅复制。


版权声明:本文为qq_35815348原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。