如何学pyhton深度学习 之 “我的python学习进阶之路”

为了谋生,代码渣渣一枚总得付出更多的努力跟上别人的步伐,这样才不会被淘汰~
so~~start our零基础的python3进阶之路吧!!!

  • 安装学习需要的环境以及软件(不会的自己搜教程吧,挺多的)

首先安装python3的各种python软件,我是python3.7,安装了pycharm。

  • 指定适合自己的学习攻略
    原来学过c和c++,所以编程有一点基础。
    从知乎以及csdn上看了很多帖子,选择了适合自己的零基础教程,个人喜欢先看视频学习,然后结合书~下面总结的是各位大佬推荐的视频和书籍,我觉得还不错,但是我还在学习,后期再给反馈吧…
    视频推荐(都是免费的):
    哔哩哔哩–>莫烦python,小甲鱼pyhton
    博文–>廖雪峰python
    ps:小甲鱼自己有鱼C论坛,课后作业是收费的,python一节2块左右。
    书籍推荐:
    《python学习手册》(第五版)
    《教孩子一起学编程(pyhton版)》
    《“笨”办法学python3》
    《python机器学习》
    那么接下来开始记录我的学习过程,方便以后我忘记了,还能回想,不然真的就都忘了。
  • 学习从0开始
    1、print()输出
    括号里面是成对的引号,单双引号都可以,但是必须是英文符号。
print("nihao")
print('nihao')

2、变量的命名方法(和C一样)
数字、下划线、字母,不可以用数字开头。
3、怎么打印出来引号
用转义字符反斜杠,如下:

print("\"")

4、r的用法,如何加反斜杠(注意r后面是没括号且单引号)

>>> temp = r'c:\nihao'
	  
>>> temp
	  
'c:\\nihao'
>>> print(temp)
	  
c:\nihao
>>> 

5、for循环、while循环、if判断
无论是哪个循环,都得记得缩进,python的循环没有大括号,都是按照缩进进行判别循环体。
条件输完,后面都有冒号!

(1)while 条件:
	...
	break
(2)for 条件:
	...
(3)if 条件:
	...
else:
	...

6、变量之间的类型转换
python自带很多内置函数,类型转换涉及到的函数有:
(1)str();
(2)int();
(3)float();
错误示例:

temp = input("How old are you?")
age = int(temp)
print("you are" + age + "years old!")

执行结果:

======================= RESTART: D:\untitled\hello.py =======================
How old are you?2
Traceback (most recent call last):
  File "D:\untitled\hello.py", line 8, in <module>
    print("you are" + age + "years old!")
TypeError: can only concatenate str (not "int") to str

原因:age是int型,输出的两边都是str型,所以类型不一致,报错。
修改如下:

temp = input("How old are you?")
print("you are " + temp + " years old!")

执行结果:

How old are you?4
you are 4 years old!

7、type()和isinstance()
type():用来查看括号内的变量是什么类型的;
isinstance(a,b):是用来查看a和b类型是否一致(一致就是ture,否则flase)。
8、算数操作符(加减乘除等)
**是幂运算;除法分/和//:
(1)//是真正的除法,就是左右两边类型一致,结果的类型就和除数被除数一样,如果不一致(一个float,一个int),结果就是float型
(2)/就是除完是多少就多少,如果其中一边是float,结果就是float。

>>> 5/3
	  
1.6666666666666667
>>> 5//3
	  
1
>>> 5.0/3
	  
1.6666666666666667
>>> 5.0//3.0
	  
1.0
>>> 

9、逻辑操作符:and、or、not
10、python的缩进强制性规定了谁和谁匹配,如if和else。不像c就近匹配,容易出错(else悬挂事件)。
11、python三元操作符(条件表达式)
下面两段代码是一个意思,但是最下面的是更简洁的版本,也是python这门语言的精华就是简洁易上手。

x,y = 4,5
if x < y:
	small = x
elae:
	small = y
small = x if x < y else y

12、assert关键字叫:“断言”,当这个关键字后面的条件为假的时候,就会程序崩溃,并且抛出AssertionError异常。
比如:assert 1 > 2
13、range(start,stop,step)
输出为start到stop-step。

>>> for i in range(1,3,1):
	  print(i)	  
1
2

14、break语句,可以直接跳出循环
15、continue语句:终止本轮循环,并开始下一轮循环,继续判断循环条件

for i in range(10):
    if i%2 == 0:
        print(i)
        continue
    i = i + 2
    print(i)

16、列表
(1)创建一个普通列表

list = [1,2,3]
member = ['nihao','yanzi']

(2)创建一个空列表

empty = []

(3)创建一个混合列表

member1 = [1,'nihao',[1,2,3]]

(4)向列表添加元素:append()
每次只能加一个!

>>> member1 = [1,'nihao',[1,2,3]]  
>>> member1.append('nihaoaaaaa')	  
>>> member1	  
[1, 'nihao', [1, 2, 3], 'nihaoaaaaa']

(5)extend()
以列表的形式添加多个!

>>> member1.extend([3,4,5])	  
>>> member1	  
[1, 'nihao', [1, 2, 3], 'nihaoaaaaa', 3, 4, 5]

(6)insert(a,b)
a代表添加到哪个位置,b代表添加的内容

>>> member1.insert(0,'xiaohua')	  
>>> member1	  
['xiaohua', 1, 'nihao', [1, 2, 3], 'nihaoaaaaa', 3, 4, 5]

(7)删除
remove():只需要知道你删除的内容就可以,不需要知道位置。

>>> member1.remove(1)	  
>>> member1	  
['xiaohua', 'nihao', [1, 2, 3], 'nihaoaaaaa', 3, 4, 5]

del:删除指定位置的内容

>>> member1	  
['xiaohua', 'nihao', [1, 2, 3], 'nihaoaaaaa', 3, 4, 5]
>>> del member1[1]  
>>> member1
['xiaohua', [1, 2, 3], 'nihaoaaaaa', 3, 4, 5]

也可以直接写列表名,整个列表都会被删除。

del member1

pop():取出列表最后一个参数,也就相当于剔除该参数;
pop(a):a代表索引值,就是删除参数的位置。

>>> member1.pop()  
5
>>> member1	  
['xiaohua', [1, 2, 3], 'nihaoaaaaa', 3, 4]
>>> 

(8)列表分片:slice
注意:中间是冒号!!!!!!不是逗号,也不是分号!
原列表内容不变!

>>> member1  
['xiaohua', [1, 2, 3], 'nihaoaaaaa', 3, 4]
>>> member1[1,3]	  
Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    member1[1,3]
TypeError: list indices must be integers or slices, not tuple
>>> member1[1;3]	  
SyntaxError: invalid syntax
>>> member1[1:3]	  
[[1, 2, 3], 'nihaoaaaaa']
>>> member1[]	  
SyntaxError: invalid syntax
>>> member1[:] 
['xiaohua', [1, 2, 3], 'nihaoaaaaa', 3, 4]
>>> member1[1:]	  
[[1, 2, 3], 'nihaoaaaaa', 3, 4]
>>> member1[:3] 
['xiaohua', [1, 2, 3], 'nihaoaaaaa']

17、列表的操作符
列表比大小:默认比较两个列表第0个元素,作为结果。
列表加法:两个列表相加,相当于列表拼接,但是不可以直接+ ‘…’,因为前后类型不同,必须是列表和列表。
列表乘法:将该列表内容重复多少次(你×多少就重复多少)。
列表逻辑运算:

>>> member1 
['xiaohua', [1, 2, 3], 'nihaoaaaaa', 3, 4]
>>> 'xiaohua' in member1	  
True
>>> 1 in member1	  
False
>>> 1 in member1[1]  
True

18、查看list运算

>>> dir(list)	  
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

(1)count(a):用来计数括号内a出现多少次;
(2)index(a):用来显示a在该列表中的位置,也就是索引;
index(a,b,c):用来显示a在位置b(起始位)和c(结束位)之间,a的索引;

>>> member1.count(1)	  
0
>>> member1.index('xiaohua')	  
0
>>> member1  
['xiaohua', [1, 2, 3], 'nihaoaaaaa', 3, 4]
>>> member1.index('xiaohua',0,3)  
0

(3)reverse():翻转整个列表

>>> list1 = [1,2,3,4]	  
>>> list1.reverse()	  
>>> list1	  
[4, 3, 2, 1]

(4)sort():给列表从小到大排序。

>>> list1	  
[4, 3, 2, 1]
>>> list1.sort()	  
>>> list1	  
[1, 2, 3, 4]

(5)拷贝一个列表尽量使用分片这样拷贝过后,内容不变,如list2;如果直接赋值,后面内容会随原变量变化,如list3。

>>> list1	  
[1, 2, 3, 4]
>>> list2 = list1[:]  
>>> list3 = list1	  
>>> list2  
[1, 2, 3, 4]
>>> list3	  
[1, 2, 3, 4]
>>> list1.append(0)	  
>>> list1	  
[1, 2, 3, 4, 0]
>>> list2	  
[1, 2, 3, 4]
>>> list3	  
[1, 2, 3, 4, 0]

18、元组和列表
(1)列表可以随意增删改,元组只能查,不可改。

>>> tuple	  
(1, 2.3, 4, 5)
>>> tuple[1] = 2 
Traceback (most recent call last):
  File "<pyshell#101>", line 1, in <module>
    tuple[1] = 2
TypeError: 'tuple' object does not support item assignment

(2)列表的特征可以是空的中括号;
元组的特征是空的括号,也可以是括号里面有数字还有逗号,如(1,)!

>>> type(temp)	  
<class 'int'>
>>> temp = 1,2.3	  
>>> type(temp)	  
<class 'tuple'>
>>> temp = (,)	  
SyntaxError: invalid syntax
>>> temp = (1,)	  
>>> type(temp)	  
<class 'tuple'>
>>> temp = ()	  
>>> type(temp)	  
<class 'tuple'>

(3)修改元组:利用切片的方式,把元组拆开,然后重新赋值,覆盖原来的内容,就当你“修改了元组”。

>>> temp	  
('xiaohua', 1, 2, 3)
>>> temp = temp[:2] + ('nihao',) + temp[2:]  
>>> temp  
('xiaohua', 1, 'nihao', 2, 3)

(4)元组的操作符:重复*8;拼接:逻辑操作符;条件操作符(大于小于)
19、字符串
(1)修改字符串内容:和元组一样,需要拆开进行拼接。
(2)好多操作:

>>> str1 = 'nihao'
	  
>>> str1.capitalize()
	  
'Nihao'
>>> str1.casefold()
	  
'nihao'
>>> str1.center(10)	  
'  nihao   '
>>> str1.count('ni')	  
1
>>> str1.endswith('o')	  
True
>>> str2 = 'ni\mo\ni'	  
>>> str2.expandtabs(0)	  
'ni\\mo\ni'
>>> str2.join('12345')	  
'1ni\\mo\ni2ni\\mo\ni3ni\\mo\ni4ni\\mo\ni5'
>>> str3 = '    nihao'	  
>>> str3.lstrip()	  
'nihao'
>>> str3.partition('h')	  
('    ni', 'h', 'ao')
>>> str3.replace('h','H')	  
'    niHao'
>>> str3.split()	  
['nihao']
>>> str3.split('o')	  
['    niha', '']
>>> str4 = '  nihao 
>>> str5 = 'ssssassss'	  
>>> str5.strip()
'ssssassss'
>>> str5.strip('s')	  
'a'
>>> str5.translate(str.maketrans('s','b'))	  
'bbbbabbbb'

20、格式化
(1)关键字参数

>>> "{a} love {c} {b}".format(a = "wo ",c = "a",b = "ni")	  
'wo  love a ni'

(2)位置参数

>>> "{0} love {2} {1}".format("wo ","a","ni")	  
'wo  love ni a'

(3)关键字、位置参数混合(规则:位置参数必须在前)

>>> "{0} love {c} {b}".format("wo ",c = "a",b = "ni")
'wo  love a ni'
>>> 

(4)一个例子

>>> '{0:.1f}{1}'.format(27.658,'gb')
'27.7gb'

(5)格式化符号

>>> '%c %c %c' % (97,98,100)  
'a b d'
>>> '%d - %d = %d'% (4,5,4-5)  
'4 - 5 = -1'

(6)格式化辅助符号

>>> '%-10d' % (5)	  
'5         '
>>> '%10d' % (5)	  
'         5'
>>> '%+10d' % (5) 
'        +5'
>>> '%+10d' % (-5)	  
'        -5'

负号表示左对齐,0是填充,但是5后面没有,python作者为了不改变原值(如果不小心在银行敲错,就会出现账户钱扩大很多遍)

>>> '%-010d' % (5)	  
'5         '
>>> '%010d' % (5)	  
'0000000005'

进制

>>> '%#X' % (5)	  
'0X5'
>>> '%#X' % (152)	  
'0X98'
>>> '%#d' % (5)	  
'5'

(7)转义字符
’ 单引号
" 双引号
\t 一个tab键
\n 换行
21、序列
序列包括列表、元组、字符串,三者共同点:
(1)都可以通过索引得到每一个元素;
(2)默认索引总是从0开始;
(3)都可以通过分片的方法得到一个范围的元素集合
(4)好多操作符都可以用
22、元组可以变成列表

>>> c = (1,2,2,5,55,6,33,2)  
>>> c = list(c)	  
>>> c	  
[1, 2, 2, 5, 55, 6, 33, 2]

23、max()、len()、min()、sum()、sorted()
max()返回序列中最大值;
len()返回序列长度;
min()返回序列最小值;

>>> d = 'i love you'	  
>>> d	  
'i love you'
>>> max(d)	  
'y'
>>> len(d)	  
10
>>> min(d)	  
' '

sum()将序列中的数字相加(类型不同不可以相加);
sorted()从小到大排序;

>>> c	  
[1, 2, 2, 5, 55, 6, 33, 2]
>>> sum(c)  
106
>>> sum(c,9)	  
115
>>> d	  
'i love you'
>>> sum(d)	  
Traceback (most recent call last):
  File "<pyshell#172>", line 1, in <module>
    sum(d)
TypeError: unsupported operand type(s) for +: 'int' and 'str'

reversed()返回迭代器对象(但是可以通过list进行复现倒序序列内容);

>>> reversed(d)	  
<reversed object at 0x0000021A41A177F0>
>>> list(reversed(d))	  
['u', 'o', 'y', ' ', 'e', 'v', 'o', 'l', ' ', 'i']

enumerate()和reversed()一样,返回的是迭代器对象,可以通过list强制转换。

>>> enumerate(d)	  
<enumerate object at 0x0000021A41A8A7E0>
>>> list(enumerate(d))  
[(0, 'i'), (1, ' '), (2, 'l'), (3, 'o'), (4, 'v'), (5, 'e'), (6, ' '), (7, 'y'), (8, 'o'), (9, 'u')]

zip()和reversed()一样,返回的是迭代器对象,可以通过list强制转换。
成双成对进行显示,多余的比如9,a列表没有就不匹配了。

>>> a = [1,2,5]	  
>>> b = [4,5,6,9]	  
>>> list(zip(a,b))	  
[(1, 4), (2, 5), (5, 6)]

23、函数编写
(1)第一个简单的函数
函数是有一个括号的,末尾要有冒号!!!!!
调用的时候,直接输入函数名字括号,ok~

>>> def MyfirstFunction()
SyntaxError: invalid syntax
>>> def MyfirstFunction():
	print("nihao")

>>> MyfirstFunction()
nihao

(2)带有参数传递的函数

>>> def add(name1,name2):
	sum = name1 + name2
	return(sum)
>>> add(5,6)
11

直接返回结果:

>>> def add(name1,name2):
	return name1+name2

>>> print(add(6,9))
15

24、函数文档
25、实参、形参
26、默认参数
27、函数与过程
有返回值的叫函数;没有返回值的叫过程。
28、全局变量和局部变量
全局变量是哪里都可以访问的到的,但是全局变量是不容易被修改的,哪怕你在函数内部创建一个和全局变量名字相同的变量并且赋值,但是这也没办法更改全局变量的值,因为系统会默认存在两个名字相同的变量,但是一个是全局,另外那个就是你妄图修改全局变量创建的值。

上一篇:实验吧[WEB]——程序逻辑问题


下一篇:redis分页获取数据