一二章,数据类型

为什么要编程?

编程

 
  1. python 八荣八耻
  2. #以动手实践为荣,以只看不练为耻。
  3. #以打印日志为荣,以单步跟踪为耻。
  4. #以空白分隔为荣,以制表分隔为耻。
  5. #以单元测试为荣,以手工测试为耻。
  6. #以代码重用为荣,以复制粘贴为耻。
  7. #以多态应用为荣,以分支判断为耻。
  8. # 以Pythonic为荣,以冗余拖沓为耻。
  9. #以总结思考为荣,以不求甚解为耻。

编程==写代码,写代码为了什么? 为了让计算机干你想要干的事情

 

有哪些高级语言

机器语言、汇编语言、高级语言

 

高级语言 (必须经过转换才能被执行)

 

编译类:

在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),效率高

编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi

 

解释类:

执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。

Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下

 

变量

把程序运算的中间结果临时存到内存里,以备后面的代码继续调用

 

变量定义规范

  1. 变量名只能是字母、数字或下划线的任意组合
  2. 变量名的第一个字符不能是数字
  3. 以下关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

定义变量不好的方式举例

  • 变量名为中文、拼音
  • 变量名过长
  • 变量名词不达意
 

常量

在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量。(一旦定义为常量,更改即会报错?)

 

代码注释

代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" """

 

数据类型

 

数字:

 

int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

 

long(长整型)

 

进制转换

整数之间的进制转换:

 
  1. 10进制转16进制: hex(16) ==> 0x10
  2. 16进制转10进制: int('0x10', 16) ==> 1
 

字符串

在Python中,加了引号的字符都被认为是字符串!

msg = "My name is Alex , I'm 22 years old!" (单双没区别,有时需配合使用)

多行字符串必须用多引号:

 
  1. msg = '''
  2. 今天我想写首小诗,
  3. 歌颂我的同桌,
  4. 你看他那乌黑的短发,
  5. 好像一只炸毛鸡。
  6. '''
  7. print(msg)
  • 补充: 
    1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf' 
    2.unicode字符串与r连用必需在r前面,如name=ur'l\thf'
 

字符串拼接

 

相加

 

相乘(重复字符串再拼接)

注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

 

布尔型(bool)

 
  1. python中的布尔值
  2. 作者:ag128333
  3. 所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有 布尔TrueFalse值。空对象、值为零的任何数字或者Null对象None的布尔值都是False
  4. 下列对象的布尔值是False.
  5. NONE;
  6. False(布尔类型)
  7. 所有的值为零的数
  8. 0(整型)
  9. 0.0(浮点型)
  10. 0L(长整型)
  11. 0.0+0.0j(复数)
  12. ""(空字符串)
  13. [](空列表)
  14. ()(空元组)
  15. {}(空字典)
  16. 值不是上面列出来的任何值的对象的布尔值都是True,例如non-emptynon-zero等。
  17. 用户创建的类实例如果定义了nonzero(_nonzero_())或length(_len_())且值为0,那么它们的布尔值就是False.

测试题:Python中布尔运算是常见的运算,那么计算0 and 1的结果是_

(python 中的and从左到右计算表达式,python中的逻辑操作符and可以将任意表达式连接在一起,并得到一个布尔类型的值,如果两边都为真,则返回第二个值,如果第一(二)个为假,则返回第一(二)个值。所以如问题所述。)

 

流程控制之 if...else

 

缩进:让程序知道,每段代码依赖哪个条件(4个空格)

在其它的语言里,大多通过{ }来确定代码块,比如C,C++,Java,Javascript都是这样

Python的缩进有以下几个原则:

  • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
  • 同一级别的代码,缩进必须一致
  • 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。
 

第二章


 

字典

  • 字典的常见操作
 
  1. 键、值、键值对
  2.     1dic.keys() 返回一个包含字典所有KEY的列表;
  3.     2dic.values() 返回一个包含字典所有value的列表;
  4.     3dic.items() 返回一个包含所有(键,值)元祖的列表;
  5.     4dic.iteritems()、dic.iterkeys()、dic.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
  6. 新增
  7.     1dic['new_key'] = 'new_value'
  8.     2dic.setdefault(key, None) ,如果字典中不存在Key键,由 dic[key] = default 为它赋值;_
  9. 删除
  10.     1dic.pop(key[,default]) get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
  11.     2dic.clear() 删除字典中的所有项或元素;
  12. 修改
  13.     1dic['key'] = 'new_value',如果key在字典中存在,'new_value'将会替代原来的value值;
  14.     2dic.update(dic2) 将字典dic2的键值对添加到字典dic
  15. 查看
  16.     1dic['key'],返回字典中key对应的值,若key不存在字典中,则报错;
  17.     2dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None
  18. 循环
  19.     1for k in dic.keys()
  20.     2for k,v in dic.items()
  21.     3for k in dic
  22. 长度
  23.     1len(dic)
 

元组

特别注意: 
1、元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义

 
  1. tup1=(50,)

2、元组中的元素值使不允许修改的,但可以对元组进行连接组合

 
  1. tup1=(12,34.56)
  2. tup2=('abc','xyz')
  3. tup1[0]=100 #非法操作,元组中的元素是不允许被修改的
  4. tup3=tup1+tup2 #python运行元组进行连接组合
  5. print(tup3)# 输出:(12,34.56,'abc','xyz')

3、元组中的元素是不允许删除的,但可以使用del语句来删除整个元组

4、元组之间可以使用+和*,即允许元组进行组合连接和重复复制,运算后会生成一个新的元组

 
  1. tup1=(1,2,3)
  2. tup2=(3,4,5)
  3. tup3=tup1+tup2 #输出:tup3=(1,2,3,3,4,5)
  4. tup4=tup1*3 #输出: tup4=(1,2,3,1,2,3,1,2,3)

5、元组运行切片操作

6、任意无符号的对象,以逗号隔开,默认为元组

 
  1. a=1,2,3,'hello'
  2. print(a) #输出:(1,2,3,'hello')

7、对元组进行操作的内建函数 
——cmp(tup1,tup2): 比较两个元组元素 
——len(tup): 返回元组中元素的个数 
——max(tup): 返回元组中元素最大的值 
——min(tup): 返回元组中元素最小的值 
——tuple(seq): 将列表转化为元组

8、元组的方法(元组没有列表中的增、删、改的操作,只有查的操作) 
——tuple.index(obj):从元组中找出某个值第一个匹配项的索引值 
——tuple.count(obj): 统计某个元素在元组中出现的次数

posted @ 2018-07-21 09:17  Zjacksparrow  阅读(265)  评论(0编辑  收藏  举报