查看“第3章 基本数据类型”的源代码
←
第3章 基本数据类型
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==数字类型== Python提供3种数据类型:整数类型,浮点数类型和复数类型。 ===整数类型=== 整数类型与数学上的概念一致 <nowiki>>>> a=1 >>> b=2 >>> a+b 3 >>> pow(2,8) 256 >>> pow(10,4) 10000</nowiki> ===浮点数类型=== 浮点数:表示带有小数的数值 python浮点数计算 存在一个“不确定尾数”问题: <nowiki> >>> 0.1+0.2 0.30000000000000004 >>> 0.1+0.2 == 0.3 False </nowiki> 解决办法: <nowiki>>>> round(1.2346,2) 1.23 >>> round(0.1+0.2,3) ==0.3 True</nowiki> ===复数类型=== 复数类型表示数学上的复数。 <nowiki>>>> (1.23e4+5.67e4j).real 12300.0 >>> (1.23e4+5.67e4j).imag 56700.0</nowiki> ==数字类型的运算== === 数值运算操作符=== *python提供了九个基本的数值运算操作符,这些操作符由python解释器直接提供,也叫做内置操作符。 x+y x-y x*y x/y x//y x%y -x +x x**y *示例操作: <nowiki>>>> x,y=2,3 >>> x+y 5 >>> x-y -1 >>> x*y 6 >>> x/y 0.6666666666666666 >>> x,y=9,2 >>> x/y 4.5 >>> x//y 4 >>> x%y 1 >>> -x -9 >>> +x 9 >>> x**y 81</nowiki> ===数值运算函数=== *abs(x): 求绝对值 <nowiki>>>> x,y = 9,2 >>> abs(x) 9 >>> abs(-x) 9</nowiki> *divmod(x,y):获得除法的商和余数 <nowiki>>>> x,y = 9,2 >>> divmod(x,y) (4, 1)</nowiki> *pow(x,y) >>> x,y = 9,2 >> pow(x,y) *round(x) "4舍6入5看齐,奇进偶不进" 关于round,接力分析,结论如下: 当个位为奇数,小数部分>=0.5入,其余为舍 当个位为偶数,小数部分>0.5入,其余为舍。 >>> x = 4.5 >>round(x) *max(x1,x2,x3,...,xn) >>> x, y, z = 1, 2, 3 >>> max(x,y,z) *min(x1,x2,x3,...,xn) >>> x, y, z = 1, 2, 3 >>> min(x,y,z) ==字符串类型及其格式化== ===字符串类型的表示=== *字符串是字符的序列,表示有一对单引号,双引号或三引号构成。 >>> name = 'abc' >>> print(name) abc *其中单引号和双引号表示单行字符串,三引号表示多行字符串。 *打印字符串的python程序,运行结果如下,注意其中的引号部分。 <nowiki>>>> print('这是“泉城”济南') 这是“泉城”济南 >>> print("这是'泉城'济南") 这是'泉城'济南 >>> print('''这是'泉城'济南, 一座美丽的城市。''') 这是'泉城'济南, 一座美丽的城市。</nowiki> *input( )函数将用户输入的内容当作一个字符串类型,这是获得用户输入的常用方式。 *print( )函数可以直接打印字符串,这是输出字符串的常用方式。如: >>> name = input("请输入名字: ") 请输入名字: Python语言 >>> print(name) Python语言 >>> *反斜杠字符是一个特殊字符,在字符串中表示转义,即该字符与后面相邻的一个字符共同组成了新的含义。 >>> print("Python\n语言\t程序\t设计") Python 语言 程序 设计 ===字符串的索引=== *字符串包括两种序号体系,正向递增序号和反向递减序号。 *[[文件:p1-105.jpg|700px]] *如果字符串长度为L,正向递增,序号以最左侧字符序号为零,向右依次递增,最右侧字符序号为L-1。反向递减虚号,以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L. *Python字符串也提供区间访问方式,采用[N:M]格式,表示字符串中从n到m不包含m的子字符串。如果表示中M或者N索引缺失,则表示字符串把开始或结束索引值设为默认值。 >>> name = "Python语言程序设计" >>> print(name[0]) P >>> print(name[0],name[7],name[-1]) P 言 计 >>> print(name[2:-2]) thon语言程序 >>> print(name[:6]) Python >>> print(name[6:]) 语言程序设计 >>> print(name[:]) Python语言程序设计 ===format()方法的基本使用=== Python推荐使用.format()格式化方法,其使用方式如下: <模板字符串>.format(<逗号分隔的参数>) <nowiki>>>> print("{}曰:学而时习之,不亦说乎。".format("孔子")) 孔子曰:学而时习之,不亦说乎。 >>> print("{}曰:学而时习之,不亦{}。".format("孔子","说乎")) 孔子曰:学而时习之,不亦说乎。 >>> print("{:.2f}".format(3.1415926))#输出小数点后2位 3.14 >>> print("{:.5}".format("这是一个很长的字符串"))#输出字符串的前5位 这是一个很</nowiki> ==字符串类型的操作== ===字符串操作符=== *python提供了五个字符串的基本操作符,如: ====x+y==== *Python字符串支持加法运算符,表示两个字符串连接,生成新字符串。 >>> 'hello ' + 'world' 'hello world' ====x in s ==== *成员判断,关键字in >>> "a" in "abcde" #测试一个字符中是否存在于另一个字符串中 True >>> 'ab' in 'abcde' True >>> 'ac' in 'abcde' #关键字in左边的字符串作为一个整体对待 False >>> "j" in "abcde" False *例子: NameList ="张明 王乐 刘全全 谭虎" name = "王乐" if "王乐" in NameList: print(name+"没在名单之中") else: print(name+"在名单之中") ====x * n 或 n * x ==== *Python字符串支持与整数的乘法运算,表示序列重复,也就是字符串内容的重复,得到新字符串。 >>> 'abcd' * 3 'abcdabcdabcd' ====str[i]==== *str[i],索引,表示第i个字符 >>> name = input("请输入名称:") 请输入姓名:山东商业职业技术学院 >>> name[0] '山' ====str[N:M]==== *str[N:M]切片,返回索引第N到M的子串,其中不包含M *例:截取身份证号第X位数字 >>> name = input("请输入名称:") 请输入姓名:山东商业职业技术学院 >>> name[2:4] '商业' >>> name[4:6] '职业' ===字符串处理函数=== *python解释器提供了一些内置函数,处理字符串呢,非常方便。 >>> x = 'Hello world.' >>> len(x) #字符串长度 12 >>> max(x) #最大字符 'w' >>> min(x) ' ' *python3以Unicode为编码单位,因此中英文字符都是1个长度单位。 *延伸阅读:https://baike.baidu.com/item/Unicode/750500?fr=aladdin *16进制、八进制等的相互转换: >>> x=7 >>> bin(x) #返回整数x对应的二进制字符串型。 '0b111' >>> x= 11 >>> hex(x)#返回整数x对应的16进制字符串型。 '0xb' >>> oct(x)#返回整数x对应的八进制字符串形式。 '0o13' >>> x=3.1415 >>> str(x) #返回x的字符串形式。 '3.1415' >>> ord('a')#返回某个字符所表示的Unicode编码。 97 >>> chr(97) 返回Unicode编码对应的单字符 *例题:打印英文26个字母的Unicode编码 <nowiki>str1='abcdefghijklmnopqrstuvwxyz' for i in range(0,26): print(ord(str1[i]))#打印26个字母对应的Unicode编码</nowiki> ===字符串处理方法=== 大小写转换: <nowiki>>>> s = "Hello World" >>> s.lower() 'hello world' >>> s.upper() 'HELLO WORLD'</nowiki> 字符串分割: <nowiki>>>> p = "Python is an excellent language" >>> p.split() ['Python', 'is', 'an', 'excellent', 'language'] >>> p.split('a') ['Python is ', 'n excellent l', 'ngu', 'ge'] >>> p.split('an') ['Python is ', ' excellent l', 'guage']</nowiki> 统计某个字符出现的次数: <nowiki>>>> p.count('a') 3 >>> p.count('an') 2 >>> p.count('') 32 >>> p.count(' ') 4 >>> p.replace('a','#') 'Python is #n excellent l#ngu#ge' >>> p 'Python is an excellent language' >>> p.replace('Python','C') 'C is an excellent language' >>> </nowiki> ==类型判断和类型间转换== 类型判断: <nowiki>>>> a=10.10 >>> type(a) <class 'float'>#类型为浮点型 >>> b=1010 >>> type(b) <class 'int'>#类型为整形 >>> c="1010" >>> type(c) <class 'str'>#类型为字符串</nowiki> 类型转换: *int(x):转化为整型 *float(x):转化为浮点型 *complet(re[,im]):转化为复数 *str(x):转换为字符串 *示例: <nowiki>>>> int(10.99) 10 >>> t = 10.99 >>> complex(t) (10.99+0j) >>> float(3) 3.0 >>> d=100.05 >>> str(d) '100.05'</nowiki> ==实例解析:凯撒编码== *例题:凯撒编码 *“恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。 初始源码:能处理26个字母除xyz以外的字符的加密 <nowiki>plaincode = input("请输入明文: ") for p in plaincode: if ord("a") <= ord(p) <= ord("z"): print(chr(ord("a") + (ord(p) - ord("a") + 3)),end='') #(ord(p) - ord("a") + 3)代表说a后面第几个字符 else: print(p, end='')</nowiki> 改进源码:能处理所有26个字符的加密 <nowiki>plaincode = input("请输入明文: ") for p in plaincode: if ord("a") <= ord(p) <= ord("z"): print(chr(ord("a") + (ord(p) - ord("a") + 3)%26),end='') else: print(p, end='')</nowiki>
返回至
第3章 基本数据类型
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息