ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-02 20:25:12  阅读:213  来源: 互联网

标签:__ xiaohua 进阶 temp python nihao 列表 pyhton member1


为了谋生,代码渣渣一枚总得付出更多的努力跟上别人的步伐,这样才不会被淘汰~
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、全局变量和局部变量
全局变量是哪里都可以访问的到的,但是全局变量是不容易被修改的,哪怕你在函数内部创建一个和全局变量名字相同的变量并且赋值,但是这也没办法更改全局变量的值,因为系统会默认存在两个名字相同的变量,但是一个是全局,另外那个就是你妄图修改全局变量创建的值。

标签:__,xiaohua,进阶,temp,python,nihao,列表,pyhton,member1
来源: https://blog.csdn.net/weixin_38148834/article/details/94433105

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有