Python机器学习基础之Python的基本语法(一)

朴灿烈づ我的快乐病毒、 2021-09-15 09:32 502阅读 0赞
  1. 当今世界已经进入了大数据的时代。随着信息化的不断发展,人工智能、机器学习等词语越来越被人们所熟知,而他们也渐渐地成了这个时代的弄潮儿,走在了信息时代的前端。从本篇博客开始,小编将带领大家一起走进人工智能之机器学习部分,让深度学习不再成为困难。同时,相关的文章将会发布在我的博客专栏[《Python从入门到深度学习》][Python],欢迎大家关注~
  2. [《Python从入门到深度学习》][Python]这一系列的博客是小编深思熟虑之后决定写的,目的是方便大家共同学习,也是为了巩固自己的知识。本专栏以代码为主,相关算法的原理讲解会在本专栏更新完之后,单独的列出一个新的算法专栏进行讲解,敬请期待。为了方便共同学习,小编在代码中列出了详细的注释。

目录

一、Python机器学习基础之Python的基本语法(一)

二、Python机器学习基础之Python的基本语法(二)

三、Python机器学习基础之Numpy库的使用

四、Python机器学习基础之Pandas库的使用

五、Python机器学习基础之Matplotlib库的使用

六、Sklearn库和TensorFlow框架

七、Python两种方式加载文件内容

  1. 声明:代码的运行环境为Python3Python3Python2在一些细节上会有所不同,希望广大读者注意。下面开始我们的第一讲:Python机器学习基础之Python的基本语法(一)。

【代码】

  1. '''
  2. 机器学习基础之Python的基本语法
  3. '''
  4. # 打印数据到控制台:python2中是不需要括号的;python3需要带括号
  5. print("Hello World!!") # 值得一提的是,代码结尾的;是可有可无的
  6. # 同时打印多个变量,各个变量之间用,隔开
  7. a = "我是:"
  8. b = "象在舞"
  9. print(a, b)
  10. # python3中支持了Unicode(utf-8)字符串
  11. 姓名 = '象在舞'
  12. print(姓名)
  13. # 注解的使用:单行注释采用#开头;多行注释使用三个单引号'''或三个双引号"""表示
  14. # 数据类型:1、Python 中的变量赋值不需要类型声明;2、Python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头,区分大小写;
  15. # 3、以下划线开头的标识符有特殊意义。如:_foo 不能直接访问,需通过类提供的接口进行访问;4、在 python 中,变量是没有类型的,如:a=[1,2,3];a="Runoob"
  16. # [1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型,它仅仅是一个对象的引用(一个指针),可以指向 List 类型对象,也可以指向String类型对象;
  17. # Python3有六个标准的数据类型:Number(数字);String(字符串);List(列表);Tuple(元组);Dictionary(字典);Set(集合,Python3新加的)
  18. # 数字:Python3支持三种不同的数字类型:int(有符号整型);float(浮点型);complex(复数:由实数和虚数构成,用a + bj,或complex(a,b)来表示)
  19. # long(长整型,注:在Python3里被去除了)
  20. a = 100
  21. print(a)
  22. b = 1.23
  23. print(b)
  24. c = 10 + 2j # 复数(实数+虚数)
  25. print(c)
  26. # 字符串:使用引号( ' )、双引号( " )、三引号( ''' 或 """ )来表示字符串,其中三引号可以由多行组成
  27. a = 'xzw'
  28. b = "我是象在舞"
  29. c = '''我是象在舞,
  30. 来自上海'''
  31. print(a, b, '\n', c) # 中间用空格间隔
  32. str = 'Hello World!'
  33. print(str)
  34. print(str[0]) # 输出字符串中的第一个字符
  35. print(str[2:5]) # 输出字符串中第三个至第五个(不包含第6个)之间的字符串
  36. print(str[2:]) # 输出从第三个字符开始的字符串
  37. print(str * 2) # 输出字符串两次
  38. print(str + "I am xzw.") # 输出连接的字符串
  39. # print(str+1) # 错误,不可以是非字符串类型(和java不一样)
  40. # 这种方法效率低,python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串,就需要重新申请内存,当连
  41. # 续相加的字符串很多时(a+b+c+d+e+f+...) ,效率低下就是必然的了
  42. print('a' + 'b' + 'c')
  43. # 略复杂,但对多个字符进行连接时效率高,只会有一次内存的申请。如果是对list的字符进行连接的时候,这种方法是首选
  44. listStr = ['a', 'b', 'c']
  45. s = ''.join(listStr)
  46. print(s)
  47. # 字符串格式化,这种方法非常常用
  48. print('%s%s%s' % ('a', 'b', 'c'))
  49. print( 'Hello: %s %s %s' % ('xzw', 100, 22.3) )
  50. # 多个变量同时赋值
  51. a, b, c = 1, 2.2, "xzw"
  52. print(a, b, c)
  53. # 列表:List(列表)是Python中使用最频繁的数据类型,列表支持字符,数字,字符串,还可以包含列表(即嵌套)
  54. list = ['xzw', 786, 2.23, 'Eric', 70.2]
  55. tinylist = [123, 'Eric']
  56. print(list) # 输出完整列表
  57. list[0] = 'aaa'
  58. print(list[0]) # 输出列表的第一个元素
  59. print(list[1:3]) # 输出第二个至第三个的元素,不包括第四个
  60. print(list[2:]) # 输出从第三个开始至列表末尾的所有元素
  61. print(tinylist * 2) # 列表元素重复两次
  62. print(list + tinylist) # 将两个列表合并
  63. # 元组:组是另一种数据类型,类似于List(列表)。元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
  64. tuple = ( 'xzw', 786 , 2.23, 'Eric', 70.2 )
  65. tinytuple = (123, 'Eric')
  66. print(tuple) # 输出完整元组
  67. # tuple[0]='aaa' # 错误
  68. print(tuple[0]) # 输出元组的第一个元素
  69. print(tuple[1:3]) # 输出第二个至第三个的元素
  70. print(tuple[2:]) # 输出从第三个开始至列表末尾的所有元素
  71. print(tinytuple * 2) # 输出元组两次
  72. print(tuple + tinytuple) # 打印组合的元组
  73. # 字典
  74. dict = {}
  75. dict['xzw'] = "This is xzw"
  76. dict[2] = "This is two"
  77. tinydict = {'name': 'xzw', 'code':6734, 'dept': 'sales'}
  78. print(dict['xzw']) # 输出键为'one' 的值
  79. print(dict[2]) # 输出键为 2 的值
  80. print(tinydict) # 输出完整的字典
  81. print(tinydict.keys()) # 输出所有键
  82. print(tinydict.values()) # 输出所有值
  83. # Set:Python3新加入的
  84. student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
  85. print(student) #重复的元素被自动去掉
  86. if('Rose' in student) :
  87. print('Rose 在集合中')
  88. else :
  89. print('Rose 不在集合中')
  90. # set可以进行集合运算
  91. a = set('abcde')
  92. b = set('abcfg')
  93. print(a)
  94. print(b)
  95. print(a - b) # a和b的差集
  96. print(a | b) # a和b的并集
  97. print(a & b) # a和b的交集
  98. print(a ^ b) # a和b中不同时存在的元素
  99. # bytes类型:Python3新加入的
  100. b = b'xzw'
  101. print(b[0]) #打印出的是ascii码
  102. print(type(b)) #查看类型
  103. s = b.decode() #转换为字符串
  104. print(s)
  105. b1 = s.encode() #转换为bytes类型
  106. print(b1)
  107. # 可变与不可变:在 python 中,string, tuple, 和 number 是不可更改的对象,而 list,dict 等则是可以修改的对象
  108. # 不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a
  109. # 可变类型:变量赋值 list=[1,2,3,4] 后再赋值 list[2]=5 则是将llist的第三个元素值更改, list本身没有动,只是其内部的一部分值被修改了
  110. # 运算符
  111. print(2 ** 3) # 8 求幂
  112. print(10 // 3) # 3 求整数商
  113. print(1 / 2) # 0.5,和其他语言有所不同
  114. a = 100
  115. a += 1 # 没有a++
  116. print(a)
  117. # 关系运算符: > < == != ( <> 在Python3中不支持) >= <=
  118. # 逻辑运算符:0为假,非0为真
  119. a = 10
  120. b = 20
  121. if (a and b):
  122. print("1 - 变量 a 和 b 都为 true")
  123. else:
  124. print("1 - 变量 a 和 b 有一个不为 true")
  125. if (a or b):
  126. print("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
  127. else:
  128. print("2 - 变量 a 和 b 都不为 true")
  129. # 修改变量 a 的值
  130. a = 0
  131. if (a and b):
  132. print("3 - 变量 a 和 b 都为 true")
  133. else:
  134. print("3 - 变量 a 和 b 有一个不为 true")
  135. if (a or b):
  136. print("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
  137. else:
  138. print("4 - 变量 a 和 b 都不为 true")
  139. if not (a and b):
  140. print("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
  141. else:
  142. print("5 - 变量 a 和 b 都为 true")
  143. # 成员运算符:in、not in
  144. a = 1
  145. b = 20
  146. list = [1, 2, 3, 4, 5];
  147. if (a in list):
  148. print("1 - 变量 a 在给定的列表中 list 中")
  149. else:
  150. print("1 - 变量 a 不在给定的列表中 list 中")
  151. if (b not in list):
  152. print("2 - 变量 b 不在给定的列表中 list 中")
  153. else:
  154. print("2 - 变量 b 在给定的列表中 list 中")
  155. # 身份运算符
  156. # is 是判断两个标识符是不是引用自一个对象,x is y 类似 id(x) == id(y)
  157. # is 与 == 区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等
  158. a = 20
  159. b = 20
  160. print(a is b)
  161. print(a is not b)
  162. # 修改变量 b 的值
  163. b = 30
  164. print(a is b)
  165. print(a is not b)
  166. # is在Python命令行中比较特殊,为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a = 2,b = 2
  167. # 时,由于2作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象
  168. # c = 20
  169. # d = 20
  170. # c is d
  171. # True
  172. # 如但果赋值的不是2而是较大的数值,情况就不一样了:
  173. # c = 5555
  174. # d = 5555
  175. # c is d
  176. # False
  177. # 条件:python并不支持switch语句
  178. num = 5
  179. if num == 3:
  180. print('boss')
  181. elif num == 2:
  182. print('user')
  183. elif num == 1:
  184. print('worker')
  185. elif num < 0:
  186. print('error')
  187. else:
  188. print('roadman')
  189. # 代码组:Python与其他语言最大区别是,Python代码块不使用大括号,Python最具特色的就是用缩进来写模块,缩进相同的一组语句构成一个代码块,我们称之代码组
  190. # 像if、while 、def和class等首行以关键字开始,以冒号结束,该行之后的一行或多行代码构成"代码组"
  191. # 我们将首行及后面的代码组称为一个"子句"(clause)缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行!!!
  192. # 例如:
  193. # if expression:
  194. # suite # 代码组
  195. # elif expression:
  196. # suite
  197. # else:
  198. # suite
  199. # 例如:(注意:没有严格缩进,在执行时会报错)。通过coding属性支持中文(在不支持中文时,加上该句)
  200. # 下面代码会报缩进错误IndentationError
  201. # # !/usr/bin/python
  202. # # -*- coding: UTF-8 -*-
  203. # if True:
  204. # print("aaa")
  205. # print("True")
  206. # else:
  207. # print("bbb")
  208. # print("False") # 注意缩进,只要对齐就行,至于用空格还是用tab对齐没区别
  209. # 注意:有些环境下,tab和空格不可以混用,有些环境下可以,因此建议在每个缩进层统一使用。'单个制表符'、'两个空格'或'四个空格',尽量不要混用,以避免不必要的麻烦
  210. # while
  211. count = 0
  212. while count < 10:
  213. # while (count < 10) : #也可以
  214. print('The count is:', count)
  215. count = count + 1
  216. # while … else …:循环条件为false时,执行else语句块,只执行一次
  217. count = 0
  218. while count < 5:
  219. print(count, " is less than 5")
  220. count = count + 1
  221. else:
  222. print(count, " is not less than 5")
  223. # continue
  224. i = 1
  225. while i < 10:
  226. i += 1
  227. if i % 2 != 0: # 非双数时跳过输出
  228. continue
  229. print(i) # 输出双数2、4、6、8、10
  230. # break
  231. i = 1
  232. while True:
  233. print(i)
  234. i += 1
  235. if i > 10: # 当i大于10时跳出循环
  236. break
  237. # for
  238. for letter in 'Python3':
  239. print('当前字母 :', letter)
  240. names = ['xzw', 'Eric', 'Josie']
  241. for name in names:
  242. print('当前姓名 :', name)
  243. # 通过序列索引迭代
  244. names = ['xzw', 'Eric', 'Josie']
  245. for index in range(len(names)):
  246. # for index in range(3): #效果相同,即(1,2,3)
  247. print('当前姓名 :', names[index])
  248. # for ...else
  249. for num in range(2, 10): # 迭代 2 到 10 之间的数字
  250. for i in range(2, num): # 根据因子迭代
  251. if num % i == 0: # 确定第一个因子
  252. j = num / i # 计算第二个因子
  253. print('%d 等于 %d * %d' % (num, i, j))
  254. break # 跳出当前循环
  255. else: # 循环的 else 部分
  256. print(num, '是一个质数')
  257. # pass:pass语句不做任何事情,一般用做占位
  258. for letter in 'Python':
  259. if letter == 'h':
  260. pass
  261. print('这是 pass 块')
  262. else:
  263. print('当前字母 :', letter)
  264. # 字符串中插入变量:
  265. # 方法一:
  266. name = 'xzw'
  267. sayhello = 'Hello,' + name
  268. print(sayhello)
  269. # 方法二:字符的格式化功能% s代表字符串, % d代表整数 ,都代表在字符中的占位符,变量的位置与字符串中的占位是一一对应关系
  270. name = 'xzw'
  271. age = 22
  272. sayhello = 'my name is %s ,and my age is %d ' % (name, age)
  273. print(sayhello)
  274. # 方法三:通过的字符串的format方法
  275. sayhello = 'my name is {0},and my age is {1} '
  276. print(sayhello.format('xzw', 22))
  277. # 文件的读写操作:
  278. # 读文件:
  279. f = open('C:\\test.txt', 'r')
  280. print(f.read())
  281. f.close()
  282. # 写文件:
  283. f = open('C:\\test.txt', 'w') # w是覆盖 , a追加写入
  284. f.write('hello python!!!')
  285. f.close() # 写入的数据如果不关闭连接,数据可能还在内容中
  286. # 生成器
  287. # 列表 :python中列表内存储的数据类型可以不一样,列表可以动态的扩展长度使用[]表示一个列表
  288. # 基本操作:
  289. list = [12, 'xzw', 1.1, 'Eric', 111]
  290. print(list[0])
  291. print(list[-1])
  292. list[0] = 13
  293. print(list)
  294. list.append(100)
  295. list.extend([20444555, 440])
  296. list.insert(1, 'str')
  297. list.pop()
  298. print(list)
  299. # 列表的切片:
  300. print(list[0:3]) # 左闭右开
  301. print(list[:3])
  302. print(list[-3:-1]) # 左闭右开
  303. print(list[-3:])
  304. print(list[0:99])
  305. list = list(range(1, 100))
  306. print(list)
  307. print(list[10:20])
  308. print(list[0:10:3])
  309. print(list[::5])
  310. print(list[::])
  311. # 列表生成式
  312. # 方法一:
  313. L = []
  314. for i in range(1, 10):
  315. L.append(i * i)
  316. print(L)
  317. # 方法二(列表生成式):
  318. list = [x * x for x in range(1, 10)]
  319. print(list)
  320. list = [x * x for x in range(1, 10) if x % 2 == 0]
  321. print(list)
  322. # 生成器generator:通过列表生成式可以直接生产一个列表,元素都以计算出。如果一个列表元素非常多,直接计算出结果会产生oom。生成器可以解决:
  323. # 生成器没有直接计算出列表中元素的值,而是保存了计算算法,每次调用生成器时才会进行一次计算,而不是直接计算全部的值,生成器的类型是generator类型
  324. # 列表生成式结果是list列表类型
  325. # 创建生成器:
  326. # 方法一:
  327. list = (x * x for x in range(1, 10) if x % 2 == 0)
  328. print(list)
  329. print(type(list))
  330. # 方法二:
  331. # 在函数中有yield关键字声明,则该函数最终返回结果是生成器
  332. list = range(1, 10)
  333. def getSquare(list):
  334. for i in list:
  335. temp = i * i
  336. yield temp # 使用yield关键字,函数变为了生成器
  337. print(getSquare(list))
  338. # 生成器的取值:
  339. # 方法一:每使用next方法调用一次,就会计算一次并返回计算结果
  340. print(next(getSquare(list)))
  341. print(next(getSquare(list)))
  342. print(next(getSquare(list)))
  343. print(next(getSquare(list)))
  344. # 方法二:生成器也是一个可迭代对象,所以可以使用for进行迭代
  345. for x in getSquare(list):
  346. print(x)

你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

发表评论

表情:
评论列表 (有 0 条评论,502人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python基本语法

    一python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个

    相关 Python学习基础语法

    1.Python 标识符 在python里,标识符有字母、数字、下划线组成。 在python中,所有标识符可以包括英文、数字以及下划线(\_),但不能以数字开头。 p