recor-02 数据类型转换函数、运算符、格式符
#__author: hasee #date: 2018/1/5 #数据类型转换函数 #int() 将其他类型的数据转换成整型 #int()转换浮点型数只会取整 print(int(1.93)) #int()转换字符串类型的数据,要求字符串中不能出现数字之外的字符 print(int('12345')+1) #int()可以转换布尔值数据,True=1,False=0 print(int(True)) print(int(False)) #float() 将其他类型的数据转换成浮点型 #float()可以转换整型数据,默认追加一位小数位 print(float(123)) #float()转换字符串类型的数据,要求字符串中不能出现数字和小数点(1次)之外的字符 print(float('1.23')+1.0) #float()可以转换布尔值数据,True=1.0,False=0.0 print(float(True)) print(float(False)) #str() 将其他类型的数据转换成字符串 print(str(100)+'abc') print(str(True)+'abc') #bool() 将其他类型的数据转换成布尔值 #除0之外的所有整数都是True print(bool(0)) print(bool(123)) #除0.0之外的所有小数都是True print(bool(0.0)) print(bool(0.1)) #除空字符串之外的所有字符串都是True print(bool('')) print(bool(' ')) #空值None print(bool(None)) #程序练习 print('how old are you:') age=int(input()) print('Next year you are:',age+1) #猜数字:设计一个程序,程序内部设置一个数值,让用户猜这个值是多少(可以提示用户猜的值与预设的值大小关系) #面向过程编程-以事件为中心 #梳理事件的过程 #明确过程中每一个环节程序要做的工作 #将每个环节程序要做的工作通过代码编写出来 #事件-猜数字 #1、程序先设置一个正确的数值 num=66 #2、程序提示用户猜数字 print("请输入一个数字:") #3、用户输入猜的数字 #4、程序接收用户的输入 user=int(input()) #5、程序进行数值比较 #6、程序输出比较结果 print("判断是否相等:",user==num) print("判断是否大:",user>num) print("判断是否小:",user<num) #算术运算符 print(1+2) print(2-1) print(2*3) print(10/3) #结果除不尽时,小数位可能有偏差 print(2**3) #求2的3次方 print(9//2) #保留除法运算结果的整数部分,并不会四舍五入 print(10%3) #求余运算、取模运算,计算除法时不能被整除的余数 #比较运算符 print(2==3) print(2!=3) #逻辑运算符 print(not 1==1) print(1>2 and 2>1) print(1>2 or 2>1) #二进制运算符 #0b1010 二进制 #0o567 八进制 #0xABCDEF 十六进制 print(0b101<<1) #0b1010 左移,多出来的低位补0 print(0b101>>1) #0b10 右移,多出来的低位删除 print(0b101 & 0b110) #0b100 两个二进制数据相同位上数字都为1时,结果这一位才为1,否则为0 print(0b101 | 0b110) #0b111 两个二进制数据相同位上数字只要有一个为1,结果这一位为1,否则为0 print(0b101 ^ 0b110) #0b011 两个二进制数据相同位上的数字不一样,结果这一位为1,否则为0 print(~0b101) #将一个二进制数据+1,再求负数 #运算符优先级 #算术运算符>二进制运算符>比较运算符>逻辑运算符 print(not 1==1 and 2>1 or 1>2) print(1+2>2) #字符串格式化 完成字符串数据的格式化处理 #将数据插入到字符串的任意位置 #插入数据时不需要做数据类型转换处理 #格式符-数据类型 #%d 代表整型数据 print("I am %d year old"%20) #%f 代表浮点型数据 print("I have %f yuan money"%50.5) #%s 代表字符串数据 print("My name is %s.I am 20 year old"%'zhangsan') print("My name is %s.I am 20 year old"%True) #%r 代表字符串数据 print("My name is %r.I am 20 year old"%'zhangsan') #格式符-精度 print("I have %.2f yuan money"%50.5) #格式符-宽度 print("I have %.2f yuan money"%50.5) print("I have %5.2f yuan money"%1.5) print("I have %5.2f yuan money"%123.456) #格式符-标签 + - 0 print("I have %+.2f yuan money"%50.5) #显示数据的符号 print("I have %-5.2f yuan money"%1.5) #控制对齐方式 print("I have %010.2f yuan money"%1.5) #设置0填充 print("I have %-010.2f yuan money"%1.5) #填充设置与其他设置冲突,则不生效 print("I have %-010d yuan money"%100) #填充设置与其他设置冲突,则不生效 #多个格式符 print("My name is %s.I am %d year old"%('zhangsan',20)) #%后面智能跟一个独立的,所以用一个有序的数组()来对应接受 #格式符-名字 不用在意传递值的顺序 print("My name is %(a)s.I am %(b)d year old"%{'a':'zhangsan','b':20}) #通过设置占位名,利用字典来定义,顺序可以无序,因为占位名已经通过字典和对应的数据精确匹配 print("My name is %(a)s.I am %(b)d year old"%{'b':20,'a':'zhangsan'}) #将格式符的宽度、精度变为动态的数值 print("I have %*.*f yuan money"%(10,2,1.5)) #通过设置*可以接受动态的参数 print("hello."+"My name is %s"%'zhangsan')