1. ##廖雪峰py3笔记
  2.  
  3. ## '//'这是获得相除后的整数部分
  4. ##a = 10//3
  5. ##print (a)
  6.  
  7. ## '/'获得相除后的结果,为浮点数,结果能整除也也是浮点数
  8. ##b = 10/3
  9. ##print(b)
  10. ##c = 9/3
  11. ##print (c)
  12.  
  13. ##输入输出
  14. ##name = input('please enter your name:')
  15. ##print('hello,',name)
  16. ##结果:
  17. ##please enter your name:jianweiwei
  18. ##hello, jianweiwei
  19.  
  20. ##编码
  21. ##美国字母数据是用的ascii编码,占用一个字节,unicode 是世界公用编码,占用4个字节,Utf_8是新的
  22. ##国际编码标准,可以根据字符所的编码难易程序,来分配对应的长度,如,在Utf-8中,英文字母是占用1个字节,
  23. ##中文占用3个字节。
  24.  
  25. ##py字符串
  26. ##对于单个字符的编码,ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。
  27. ##ord('a')#97
  28. ##print(ord('a'))
  29. ##print(ord('中'))#20013
  30. ##print(chr(88))#X
  31. ##print(chr(25991))#文
  32.  
  33. ##py的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节,如果要在网络上传输,或者保存到
  34. ##保存到磁盘上,就需要把str变为以字节为单位的bytes.
  35. ##对bytes类型的数据用带b前缀的单引号或双引号表示:
  36. ##x = b'ABC'#表示bytes类型的数据,每个字符只占一个字节,‘ABC’表示str字符串,用Unicode编码
  37. ##print(x)#结果:b'ABC'
  38.  
  39. ##以Unicode表示的str通过encode()(编码)方法可以编码为指定的bytes,例如:
  40. ##x = 'ABC'.encode('ascii')
  41. ##print(x)#结果b'ABC',表示把str类型的'ABC'编码为b'ABC'的以字节为单位的bytes类型的
  42. ##x = '中文'.encode('utf-8')
  43. ##print(x)#结果:b'\xe4\xb8\xad\xe6\x96\x87',把中文变成了bytes.
  44. ##x = '我爱大树'.encode('utf-8')
  45. ##print (x) #b'\xe6\x88\x91\xe7\x88\xb1\xe5\xa4\xa7\xe6\xa0\x91'
  46.  
  47. ##纯英文的str可以用ASCII编码为bytes,含有中文的str可以用utf-8编码为bytes,含有中文的str无法用ASCII编码,因为
  48. ##中文编码范围超过了ASCII的。在bytes中,无法显示为ASCII的字节,用\x##表示,
  49. ##反过来,如果我们从网络或磁盘上读取了节节流,那么读的数据就是bytes。要把bytes转为str,yi
  50. ##需要用decode()方法
  51. ##x = b'ABC'.decode('ascii')
  52. ##print (x)#结果ABC,说明已经把字节的b'ABC'转化为str的'ABC'
  53. ##x = b'\xe6\x88\x91\xe7\x88\xb1\xe5\xa4\xa7\xe6\xa0\x91'.decode('utf-8')
  54. ##print (x) #我爱大树'
  55.  
  56. ##len()用来计算str字符串的字符数,还可以来用计算bytes数据的字节数。
  57. ##print (len(b'ABC'))#3说明,一个bytes占用一个字节,而一个英文字符占用1个字节。一个中文占用3个字节
  58. ##print (len('ABC'))#3
  59. ##print (len(b'\xe6\x88\x91\xe7\x88\xb1\xe5\xa4\xa7\xe6\xa0\x91'))#12
  60.  
  61. ##py源码也是文本文件,当源码中包含中文时,在保存源码时,就需要务必指定保存为utr-8可以在文件开头时写上
  62. ## #!/usr/bin/env python3
  63. ## #-*- coding:utf-8 -*-
  64. ##上面第一行是为了告诉Linux/osx系统,这是一个py可执行程序,在windows可以不用写,第二行是说用utf-8读取代码。
  65.  
  66. ##py中的格式化,用%实现。
  67. ##strHi = 'hello,%s'%'world'#在前面字符串中的%s被后面%后的字符串替换。
  68. ##print (strHi)
  69. ##当要替换的内容比较多时,后面的%号用括号括起来,用,进行分隔。
  70. ##常见的点位符有:
  71. ##%d 整数
  72. ##%f 浮点数
  73. ##%s 字符串
  74. ##%x 16进制整数
  75. ##其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数。
  76. ##x = '%2d-%02d' % (3,1)
  77. ##print (x)# 3-01
  78. ##x = '%.2f' % 3.1415926
  79. ##print (x)#3.14
  80. ##当为了表示在字符中的一个普通的'%',可以用%%来进行转义,
  81.  
  82. ##练习
  83. ##x = (85-72)/72*100
  84. ##print('小明的成绩提升了%.1f%%'%x) #小明的成绩提升了18.1%
  85.  
  86. ##py中的list
  87. ##classmates = ['a','b','c','d','e']#用[]表示。
  88. ##x = len(classmates)#用len()函数可以得到list的长度,前面也可以得到str,bytes的长度,字节数量
  89. ##print(x)#5
  90. ##print(classmates[2])#可以得到指定位置上的元素c。
  91. ##print(classmates[len(classmates)-1])#list最后一个元素用len(list)-1来表示位置。
  92. ##print(classmates[-1])#e,也可能用-1来表示最后一个元素,同理[-2]表示最后第二个。
  93. ##classmates.append('f')#把f加到最后一个位置上
  94. ##classmates.insert(1,'0')#把0加入到索引为1的位置。
  95. ##classmates.pop()#删除最后一个元素。
  96. ##classmates.pop(3)#删除指定位置为3的元素。
  97. ##classmates[2] = 'k'#把索引位置为2的元素换为'k'
  98. ##print(classmates)
  99. ####list中也可以添加另一个list
  100. ##classmates.insert(1,[1,3,4])
  101. ##print(classmates)
  102. ##print(classmates[1])
  103. ##
  104. ##a = []
  105. ##print(len(a))#0,表示空的list
  106.  
  107. ##tuple元组,有序列表,一旦初始化就不能修改,这样数据更安全,所以能用tuple不用list
  108. ##classmates = ('x','y','z')
  109. ##print(classmates[0])#'x'
  110. ###由于tuple不能被修改,所以list中的insert,pop,等一些修改,替换的方法在元组中都不能用。
  111. #当定义的为一个元素时
  112. ##t = (1)#这时与数据运算中()会有歧义,Py规定这时按数学运算记,t为1.而不是元组。可以改变。
  113. ##tupleDemo = ('1','23',[22,33])#表示一个元组里包含一个list,这时元组的元素还是不能改变,但是元组中的list
  114. #元素的内容是改变的,应该加以区分。
  115.  
  116. ####练习
  117. ##L = [['apple','google','microsoft'],['java','py','puby','php'],['adam','bart','lisa']]
  118. ##print(L[0][0])
  119. ##print(L[1][1])
  120. ##print(L[2][2])
  121.  
  122. ##条件判断:if,和java同,就不再详细记录主要是注意格式,缩进。
  123. ##if x :
  124. ## print()
  125. ##elif y :
  126. ## if l :
  127. ## print()
  128. ## elif m :
  129. ## print()
  130. ## else :
  131. ## print()
  132. ##else :
  133. ## print()
  134.  
  135. ##for循环,py中的for循环与java中的超级for循环类似,把要循环的对象分别赋值给变量。
  136. ##ziMu = ['a','b','c','d']
  137. ##for zi in ziMu :
  138. ## print(zi) #a b c d
  139. ##range(i)生成一个从0到小于i的一个整数序列。
  140. ##sum = 0
  141. ##for ii in range(100):
  142. ## sum = sum+ii
  143. ##print (sum)
  144.  
  145. ##while循环
  146. ##while x:
  147. ## print()
  148. ## if l:
  149. ## break
  150.  
  151. ##dict全称是dictionary字典,在java中被称为map,有健值对。查找速度快,是能过健值查找,比list快。
  152. ##d = {'a':111,'b':222,'c':333,'d':444}
  153. ##d['a']#111.
  154. ###d[f]因为没有f这个健,所以会报错,因此可以用下面方法:
  155. ##if 'f' in d :
  156. ## print(d['f'])
  157. ###或
  158. ##d.get('f')#当’f'不存在时,会返回None
  159. ###要删除一个key,用
  160. ##d.pop('c')#同时,'c'对应的value值也会被删除掉。
  161.  
  162. ##list与dict相比,dict的特点:
  163. #1.查找与插入速度快,不会随着key的增加变慢。
  164. #2.要占用大量的内存,
  165. #list则查找与插入时间会随元素数量的增加而增加。但内存占用相对较少。
  166.  
  167. #dict的key不能改变,不然得到的value的内存位置就会改变,value也会改变。因此作为key的类型为
  168. #不可以改变的类型,str,整型,但list不能作为key.
  169.  
  170. ####set
  171. ###也是 组key的集合,但不存储value,像在dict中一样,key同样不能重复。要创建set,需要提供一个list作为
  172. ###输入集合
  173. ##s= set([1,2,3,4,5,3443])
  174. ##print(s)#{1, 2, 3, 4, 5, 3443},可以看到是大括号,list是[]。同时,set中的元素是无序的。
  175. ###set会自动过滤list中的重复元素。
  176. ##q = set([1,1,1,3,3,3,2,2,222222,5,5,])
  177. ##print(q)#{1, 2, 3, 5, 222222}可以看到,重复元素被过滤了,
  178. ##q.remove(222222)#
  179. ##print(q)#{1, 2, 3, 5}用remove(key)来删除一个key
  180. ###因为set中的元素不能重复,所以可以为两个序列取交集,并集操作。
  181. ##s1 = set([1,2,3])
  182. ##s2 = set([2,3,4])
  183. ###取交集
  184. ##print(s1 & s2)#{2, 3}
  185. ###取并集
  186. ##print(s1 | s2)#{1, 2, 3, 4}
  187. ###set与dict一样,不可以放入可变对象,因为无法判断两个可变对象是否相等。
  188. ###尝试把list放入set
  189. ###s1[0] = [1,2,3]#TypeError: 'set' object does not support item assignment
  190. ###print (s1[0])
  191.  
  192. ###不可变对象:
  193. ###str是不可变对象,list是可变对象。
  194. ##a = ['b','a','d','e','c']
  195. ##a.sort()
  196. ##print(a)#['a', 'b', 'c', 'd', 'e'],a变成有序的了,说明内容可变。
  197. ##a = 'abc'
  198. ##a.replace('a','A')
  199. ##print (a)#abc,说明a没有变,但是没有变为是可以使用replace()方法呢。
  200. ##a = 'abc'
  201. ##b = a.replace('a','A')
  202. ##print(b)#Abc,可以理解为:a只是一个变量,指向一个内存地址,其中放着字符串'abc',a.replace('a','A')
  203. ###方法没有改变'abc',而是重新生成一个新的字符串'Abc',b指向了这个新的字符串,a还是指向'abc'
  204.  
  205. ####函数
  206. ##x = -2
  207. ##abs(x)#求绝对值,当传入的参数的个数不对,会报Typeerror错误。
  208. ##y = 5
  209. ##max(x,y)
  210.  
  211. ###数据类型转换
  212. ##print(int('123'))#123,把str类型的’123‘转换为整数123
  213. ##print(float('12.34'))#12.34
  214. ##print(str(12.34))#'12.34',
  215. ##print(bool(1))#True
  216. ##print(bool(''))#False
  217. ###像abs()函数中的abs函数名称实际是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于
  218. ###给函数起了个别名。
  219. ##a = abs
  220. ##print(a(-30))
  221. ##b = max
  222. ##print(b(18,80))
  223.  
  224. ####练习
  225. ##print(str(hex(30)))#0x1e,把30转换成16进制表示的字符串。
  226.  
  227. ####函数的定义
  228. ###Py中函数定义用def 函数名(参数):函数体,return 返回值
  229. ##def my_abs(x):
  230. ## if x>=0:
  231. ## return x
  232. ## else :
  233. ## return -x
  234. ##print(my_abs(-10))
  235. ###py中可以传入多个参数,并且有多个返回值。
  236. ##def manyData(a,b,c):
  237. ## x = b+c
  238. ## y = a+b
  239. ## z = a+c
  240. ## return x,y,z
  241. ##print(manyData(1,2,3))#返回的多个参数是以元组的形式返回的。
  242. ###return,当return后,函数就被结束了执行,当return None,返回就是为空,也可以写成return
  243. ###空函数:
  244. ###pass,当函数体为空时,可以用pass结束,返回为None,用pass语句什么都不做,点位符用。当还没有想
  245. ###想好函数体怎么写是,用pass.
  246. ##def getAge(age):
  247. ## if age>=10:
  248. ## pass
  249. ##getAge(13)
  250. ###当调用 一个函数时,传入的参数是一个错误的类型,或参数的个数不对时,就会报TypeError错误。
  251. ##def my_abs1 (x):
  252. ## if not isinstance(x,(int,float)):
  253. ## raise TypeError('bad operand type')
  254. ## if x>=0:
  255. ## return x
  256. ## else :
  257. ## return -x
  258. ####print(my_abs1('11'))#当传入的参数类型不正确时,就会报raise 后面的定义的错误。
  259. ##print(my_abs1(-11))
  260.  
  261. ##函数的参数
  262. #位置参数
  263. def power(x,n):
  264. s = 1
  265. while n>0:
  266. s = s*x
  267. n = n-1
  268. return s
  269. print(power(12,3))#这里的x,n都是被指定好位置的,叫位置参数。调用时,要依次传入参数。
  270.  
  271. #默认参数
  272. def moren(x,n = 3):
  273. s = x+n
  274. return s
  275. print (moren(1))#4,这里可以看到,函数定义了两个参数,但调用函数时,只传入了一个参数,n没有
  276. #传入参数值,但也没有报错,原函数里的 n=3就是默认参数,当不传入n的参数值时,就使用默认值,
  277. #而传入n的参数值时,就会使用传入的参数。
  278. print(moren(1,10))#11
  279. print(moren(3))
  280. #默认参数一般放在函数非默认参数的后面,默认参数一般为变化量不大的参数。
  281. #默认参数必须指向不变的对象,上面n = 3,是把n 指向3这个不变的数字。
  282. #当默认参数指向一个可变的对象时:
  283. def kebian(b = []):
  284. b.append('X')
  285. return b
  286. print(kebian())#['X']
  287. print(kebian())#['X', 'X'],可以看到,当默认参数指向一个可变对象时,执行同样语句,内容确
  288. #有变化,这是什么原因呢:因为变量b指向对象[]的引用地址,地址不会变,但[]中的内容是可变的,
  289. #当第一次执行参数时,[]list,内容就变成了['x'],再次执行时,就会往同一地址指定的[]中再加入一
  290. #次'x',这样就会导入不希望出来的结果。
  291.  
  292. #可变参数
  293. def kebian(*nums):#接收时用'*'加一个变量名,表示接收可变参数。
  294. s = 0;
  295. for num in nums:
  296. s = s+num
  297. return s
  298. print(kebian(1,3,4,3,2,3,3))#可变参数就是用来表示参数个数不确定的函数。传入的参数,是由
  299. #list或tuple演变简写成这种样式的。

  

Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数的更多相关文章

  1. 【python】 [基础] 数据类型,字符串和编码

    python笔记,写在前面:python区分大小写1.科学计数法,把10用e代替,1.23x10·9就是 1.23e9                            或者 0.00012就是1 ...

  2. Python3学习(1)-基础篇

    Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...

  3. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  4. Python基础学习Day7 基础数据类型的扩展 集合 深浅copy

    一.基础数据类型的扩展 1.1GBK ---> UTF - 8 # str --->bytes s1 = '太白' # 字符串是unicode编码 b1 = s1.encode('gbk' ...

  5. Python学习1 基础数据类型

    一.字符串                         1.去除首尾字符 str_test = 'Hello World!' str_test.split()#将字符串分割为列表str_test. ...

  6. Java学习 (七)基础篇 变量

    变量 变量顾名思义,就是可以变化的量 Java是一种强类型语言,每个变量都必须声明其类型 Java变量是程序中最基本的存储单位,其要素包括变量名.变量类型和作用域 type varName [=val ...

  7. python学习之基础入门,安装,字符串,数据转换,三元运算符

    python基础 我们要开始学习新的编程语言了,加油~~ python是“世界上最好的语言”,学习它当然是认为它是最好的所以我们才学(人生苦短我学python),python运用于不同的领域,采集分析 ...

  8. Lua学习----Lua基础数据类型

    前言 Lua有6中数据类型,分别是nil(空).boolean(布尔).number(数字).string(字符).table(表).function(函数) 在Lua中可以使用type函数来返回一个 ...

  9. Python基础 数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)

    数据类型有整型.布尔.字符串.列表.字典.元组.集合.堆.栈和树. 1.整型: 整型就是数字 数字表示 python2 64位机器,范围-2^63~2^63-1 超出上述范围,python自动转化为l ...

  10. java学习笔记(基础篇)—变量与表达式

    一:局部变量和实例变量 定义变量是指设定变量的数据类型和变量的名字,Java语言要求变量遵循先定义,再初始化,然后使用的规则. 作用域:指它的存在范围,只有在这个范围内,程序代码才能访问它. 变量的生 ...

随机推荐

  1. Openstack+Kubernetes+Docker微服务实践之路--Docker和Registry2

    渐入佳境,我们开始比较具体的工作,由于Docker是一个基础组件,所以本文的主题是Docker和Registry2. 底层系统基于Centos7,先在一台云主机上安装Docker,Docker的安装非 ...

  2. MariaDB 在 Windows 下 noinstall 版本的安装和配置

    1. 下载并解压 noinstall 压缩包,假设解压到 D:\APP\mariadb-10.0.17-winx64 目录 下载地址(MariaDB 10.0.17 Stable):llarian.n ...

  3. 隐藏原生html5 video controls

    隐藏原生html5 video controls 凤凰视频焦点项目mobile html5播放器测试时bug,由于没有用原生的controls而是自己写的custom controls,虽然设置了co ...

  4. Thread.join()方法

    thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B.t.join() ...

  5. 让Java和MySQL连接起来

    Java 连接 MySQL 需要驱动包,可以下载菜鸟教程提供的 jar 包:http://static.runoob.com/download/mysql-connector-java-5.1.39- ...

  6. Image放大缩小在放进Imageview

    // 拿到要缩小放大的Bitmap obitmap = BitmapFactory.decodeResource(this.getResources(),R.drawable.ic_launcher) ...

  7. 【转】 C++的精髓——虚函数

    虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原 ...

  8. simpson法求积分 专题练习

    [xsy1775]数值积分 题意 多组询问,求\(\int_l^r\sqrt{a(1-{x^2\over b})}dx\) 分析 double f(double x) { return sqrt(a* ...

  9. js基本类型 引用类型

    参考 https://segmentfault.com/a/1190000005794070 http://blog.csdn.net/yummy_go/article/details/5050468 ...

  10. SPSS数据分析—因子分析

    我们知道主成分分析是一种降维方法,但是其本质上只是一种矩阵变换的过程,提取出来的主成分并不都具有实际含义,而这种含义往往是我们所需要的,接下来的因子分析可以解决这个问题 因子分析可以看做是主成分分析的 ...