1、数据类型、运算符与表达式,2019年7月7日星期日,回顾上一节,输入、输出语句 变量与内存之间关系 标识符 简单编程(IPO),练习输入语句,提示信息input:后输入两个整数100,200如何写输入语句? ivar1,ivar2=eval(raw_input(“input:”)),变量与内存关系,根据下图给出两条语句输出结果: print “id(iVar1):”,id(iVar1) print “iVar1:”,iVar1,iVar1,数据类型,主要内容,1,算术运算符,2,关系运算符,3,逻辑运算符,4,表达式,5,现实世界数据类型,现实世界数据类型,品牌-Adidas 款式-F/M 尺
2、码-M 规格-170/92A 价格-222.5 月销量-2000 现货-有/无,现实世界数据类型,品牌-Adidas 款式-F/M 尺码-M 规格-170/92A 价格-222.5 月销量-2000 现货-有/无,print type(“adidas“) print type(M) print type(170) print type(222.5) print type(2000) print type(True) print type(False),数据类型,print type(“adidas“) print type(M) print type(170) print type(222.5
3、) print type(2000) print type(True) print type(False),五种基本数值数据类型,字符串 string, 简记为str 整数 integer, 简记为int (int 和long,2*31或2*63为界) 浮点数 float 布尔数 boolean, 简记为bool 复数 complex,sVar1=raw_input(“input 123:“) iVar2=eval(raw_input(“input 123:“) print type(sVar1) print type(iVar2),一般数据类型英文单词的首字母小写作为变量第一个字符用来说明变
4、量类型 如: iRadius fArea sStrings bBoolean 一般Python解释器使用_或_ _作为变量首字符,用户最好不用。,访问没有赋值的变量 area = radius * radius * 3.14159,混合变量类型使用出错 ivalue = 123+“123”,混合变量类型使用转化: float int bool 数据信息截断,潜在错误。 int(12.5)=12,强制类型转换,int(“123”)= 123 str(123)= “123” float( “123”)=123.0 float(123)=123.0 bool(123)=True bool(0)=Fa
5、lse在混合类型表达式中,Python自动转换:int long float,输出语句,自定义格式输出,print(format(57.467657, “10.2f“) print(format(57.467657, “.2f“),输出语句,自定义格式输出,print(format(57.467657, “10.2e“) print(format(0.0033923, “10.2e“) print(format(57.4, “10.2e“) print(format(57, “10.2e“),输出语句,自定义格式输出,print(format(59832, “10d“) print(forma
6、t(59832, “10d“) print(format(59832, “10x“) print(format(59832, “10x“),输出语句,自定义格式输出,print(format(“Welcome to Python“, “20s“) print(format(“Welcome to Python“, “20s“) print(format(“Welcome to Python and Java“, “20s“),print 0100,100 , 0x100 运行结果?64 100 256,现实世界算术运算,1件衣服228+1双袜子20,优惠98%,多少钱? 10件衣服打五折,多少
7、钱? 买5赠1,平均一件多少钱? 老客户225摸零,老板赔多少钱?,算术运算符,/除法在Python 2.x和3.x的区别,对Python 2.x版本 当a/b同为整数时,a/b等价于a/b来处理以避免出错,对Python 3.x版本 当a/b同为整数时,a/b等价于a*1.0/b来处理以避免出错,算术运算符,一元运算符与操作数紧邻,二元运算符与操作数之间空一格,以突出运算符-3+3 = -3 + 3表达式根据运算优先关系多使用(),(3 + 4 * x) / 5) (10 * (y 5) * (a + b + c) / x) + (9 * (4 / x + (9 + x) / y),扩展赋值
8、运算符,理解取整除和模运算,1件衣服225+1双袜子20,优惠98%,多少钱? (225+20)*98/100.0=240.01 10件衣服打五折,多少钱? 224*10*(5*1.0/10)=1120 买5赠1,平均一件多少钱? 224*5/(5+1)=186.6666666666667 186.666666666667/1=186.0 186.666666666667/0.01*0.01=186.66 老客户5件衣服摸零,老板赔多少钱? 225*5%100=25,关系运算符,用于比较两个量的大小、两个量是否相等或者两个量是否不相等运算的结果只有两种(布尔型) 若结果为True,表示条件成立
9、 若结果为False,表示条件不成立非布尔型的数值也可以作为布尔数据使用 若数值非0,等价于True 若数值为0,等价于False,关系运算符 5.4,Relational Operators,现实世界关系运算,1件衣服225+1双袜子20,优惠98%,多少钱? 10件衣服打五折,多少钱? 买5赠1,平均一件多少钱? 老客户225摸零,老板赔多少钱? 大于100件团购,优惠70%,否则优惠85%,现实世界关系运算,衣服=1,袜子=1 衣服=10 衣服=5 客户=“老客户” 客户!= “老客户” 衣服数量100 衣服数量=100,1件衣服225+1双袜子20,优惠98%,多少钱? 10件衣服打五
10、折,多少钱? 买5赠1,平均一件多少钱? 老客户225摸零,老板赔多少钱? 大于100件团购,优惠70%,否则优惠85%,关系运算符,综合例子 当x为大于1的奇数时,下列一定成立的是: x % 2 = 1 x / 2 = 1 x % 2 != 0 x % 2 = 0 下面b和c值为: a = 3 b = a 3 c = a = 3,现实世界中处处体现逻辑 今天你吃了没有? 今年的寒假是不是要提前啊? 你们班有没有身高一米九以上的男生啊? ,计算机:?,0,1,真与假,对与错,是与否,逻辑运算符5.3,not运算符优先级高于and运算符 and运算符优先级高于or运算符,用于对包含关系运算符的表
11、达式进行与或非,现实世界逻辑运算,1件衣服228+1双袜子20,优惠98%,多少钱? 10件衣服团购优惠5折,或使用优惠券100返50,1件衣服225+1双袜子20,优惠98%,多少钱? 10件衣服团购优惠5折,或使用优惠券100返50,衣服=1 and 袜子=1优惠98% 衣服=10 or 优惠券=True5折,1. 该图形是否是红色三角型?,Shape = Triangle, Circle, Square, Diamond,Color = Blue, Red, Orange ,and,1,假,真,假,2,假,假,假,3,真,假,假,4,真,真,真,5,假,假,假,数据类型 布尔型,and,
12、2. 该图形是否是红色或是三角型?,Shape = Triangle, Circle, Square, Diamond,Color = Blue, Red, Orange ,or,1,假,真,真,2,假,假,假,3,真,假,真,4,真,真,真,5,假,假,假,数据类型 布尔型,or,3. 该图形是否是非红色?,Shape = Triangle, Circle, Square, Diamond,Color = Blue, Red, Orange ,1,假,真,2,假,真,3,真,假,4,真,假,5,假,真,数据类型 布尔型,not,2,3,4,下面哪一位是台湾女星?,1,真,假,假,2,假,真,
13、假,3,真,真,真,4,?,假,假,1,运算符,综合例子 设a = 10; b = 20,则 c = a % b 1 若a是数值类型,则 a=1 or a!=1 设a = 10,则 0a20 0a and a20,运算符,综合例子 设c = 25,则 a = c / 10 % 9 b = a and (-1) 设a = 2, b = 3, c = 4,则 a b and not c or 1 a and b not a = 1 and not b = 0 a or b + b and c - a,运算符介绍,Python语言的基本运算 算术运算 加、减、乘、除 关系运算 大小、相等 逻辑运算
14、与、或、非,运算符介绍,一元运算符 形式: 正数符号(+)、负数符号(-)、或(not)二元运算符 形式: 加(+)、减(-)、乘、除.,表达式,由数值(Values)、变量(Variables)、操作符(operators)组成的式子,运算符优先级,不同运算符的作用不同 算术运算符用于计算关系运算符用于比较逻辑运算符用于与或非,算术运算符 高于 关系运算符 关系运算符 高于 逻辑运算符,运算符优先级,看看下面两个句子 2 * (1+3) 先加后乘 2 * 1 + 3 先乘后加括号() 改变了语言内在的默认优先级 具有最高优先级嵌套括号按照由内而外结合,运算符优先级,括号:( ) 一元运算:+ ,- 幂次:* 算术运算:* ,/ ,%,/ 算术运算:+ ,- 比较运算:= , !=, = 逻辑非:not 逻辑与:and 逻辑或:or 赋值运算:=, *=, /=,+=,-=,%=,/=,规则1:自上而下括号最高逻辑最低,规则2:一元优先自右向左,规则3:自左向右依次结合,Thank you,