今日主要内容 整型 范围 进制转换 字符串 索引 切片 部分方法详解 for循环 一、整型(int) (一)整型的范围 32位:-2 ** 31 ~ 2 ** 31 -1 64位:-2 ** 63 ~ 2 ** 63 -1 (二)进制转换 十进制转换二进制: 短除法:与2短除,除到商为0,从下向上取余 bin() 函数:将十进制数转换为二进制数 num = 13 print(bin(num)) # 1101 二进制转换十进制 算术法:从右向左依次乘2的n次方(n为0,1,2,...),最后相加 int() 函数:其中第二个参数传入几进制数,第一个参数传入对应进制数 num = "1101" print(int(num, 2)) # 13 (三)不可变数据类型 什么是不可变/可变类型数据 能在原地修改的数据是可变类型数据 不能再原地修改的数据(修改就会开辟新的内存空间)是不可变类型数据 整型是不可变类型数据 id() 函数:查看内存地址 a = 10 print(id(a)) # 1956675984 a = a + 1 print(id(a)) # 1956676016 二、字符串(str) (一)索引 什么是索引? 索引就是下标,python中索引是从0开始的 索引只给有序数据类型使用 索引的表示 str[下标] 正索引和反索引 正索引:从左到右依次 0,1,2 ... 反索引:从右到左依次 -1,-2,-3 ... a = "粪发涂墙的郭老湿" print(a[0]) # 粪 print(a[3]) # 墙 print(a[5]) # 郭 print(a[-3]) # 郭 注意:索引时,超出最大索引值会报错 a = "粪发涂墙的郭老湿" print(a[10]) # IndexError: string index out of range (二)切片 上面的例子,如果想要得到"粪发涂墙",只能挨个索引再进行拼接 a = "粪发涂墙的郭老湿" a1 = print(a[0]) a2 = print(a[1]) a3 = print(a[2]) a4 = print(a[3]) print(a1 + a2 + a3 + a4) # 粪发涂墙 是不是很麻烦 ,可以利用切片 切片只给有序数据类型使用 切片格式 str[start: end: step] 默认step为1 特点:顾头不顾腚 从开头切片不用输入start; 切到结尾不用输入end; 从开头切到结尾都不用输入 a = "粪发涂墙的郭老湿" mes = a[:4] # 从开头切不用输入start print(mes) # 粪发涂墙 step为步长,可以利用step间隔切片 a = "粪发涂墙老污郭" print(a[::2]) # 粪涂老郭 步长若为负数,则反向切片 注意:若反向切片,start和end的位置是从后往前取的 a = "粪发涂墙老污郭" print(a[::-2]) # 郭老涂粪 print(a[-2:-6:-1]) # 污老墙涂 将字符串反转可以利用切片 a = "粪发涂墙老污郭" a_inversion = a[::-1] print(a_inversion) # 郭污老墙涂发粪 索引时,超出最大索引值不会报错 (三)方法详解 str.upper() 全部变为大写 str.lower() 全部变为小写 str.startswith(n) 判断是否以n开头 str.endswith(n) 判断是否以n结尾 str.count(n) 计算n出现的次数 str.strip() 去掉两端空格、\n、\t str.split(n) 以n切割 str.replace(old, new) 替换 str.isalnum() 判断是否由数字、中文、字母构成 str.isalpha() 判断是否由中文、字母构成 str.isdigit() 判断是否由阿拉伯数字构成 str.isdecimal() 判断是否由十进制数字构成 str.upper() 将字符串全部变为大写,只对字母生效,对其他不报错 a = "zxdznb" new_a = a.upper() print(a) # 不可变类型,原字符串不变 print(new_a) # ZXDZNB str.lower() 将字符串全部变为小写,只对字母生效,对其他不报错 a = "ZXDZNB" new_a = a.lower() print(a) # 不可变类型,原字符串不变 print(new_a) # zxdznb 应用:登录验证码,不区分大小写 verify_code = "eF7d" while True: user = input("账号:") pwd = input("密码:") while True: print(f"验证码:{verify_code}") vc = input("请输入验证码:") if vc.upper() == verify_code.upper(): # 全部变为大写 break else: print("输入错误,请重新输入!") if user == "ZXD" and pwd == "zxd123": print("欢迎回来") break else: print(”账号密码错误,请重新输入!“) str.startswith(n) 判断字符串是否以参数n开头,输出为布尔值 还可以判断切片的开头 a = "zxdznb" print(a.startswith("z")) # True print(a.startswith("x")) # False print(a.startswith("x", 1, 5)) # True print(a.startswith("z", 1, 5)) # False str.endswith(n) 判断字符串是否以参数n结尾,输出为布尔值 还可以判断切片的结尾 a = "zxdznb" print(a.endswith("b")) # True print(a.endswith("x")) # False print(a.endswith("n", 1, 5)) # True print(a.endswith("z", 1, 5)) # False str.count(n) 计算参数n在字符串中出现的次数 还可以切片计算变量n出现的次数 a = "zxdznb" print(a.count("z")) # 2 print(a.count("z", 0, 3)) # 1 str.strip() 默认去掉字符串两端空格、换行符(\n)、制表符(\t) 也可以去掉指定内容 a = " zxdznb " a1 = a.strip() print(a1) # zxdznb a2 = a1.strip("b") print(a2) # zxdzn 应用:去掉用户输入账号密码时,手误多打的空格 while True: user = input("账号:").strip() pwd = input("密码:").strip() if user == "ZXD" and pwd == "zxd123": print("欢迎回来!") break else: print("账号密码错误,请重新输入") str.split() 默认以空格、换行符(\n)、制表符(\t)切割字符串,得到的是一个列表, 也可以指定字符切割 还可以填入第二个参数,可以指定切割次数 a1 = "zxd znb" lst1 = a1.split() print(lst1[0], lst1[1]) # zxd znb a2 = "zxd,znb" lst2 = a2.split(",") print(lst2[0], lst2[1]) # zxd znb a3 = "xdznbznb" lst3 = a3.split("z", 1) print(lst3[0], lst3[1]) # xd nbznb str.replace(old, new) 将字符串中的字符替换成新字符 可以指定替换次数,默认全部替换 a = "zxdhnbhnb" new1_a = a.replace("h", "z") print(new1_a) # zxdznbznb # 全部替换 new2_a = a.replace("h", "z", 1) print(new2_a) # zxdznbhnb # 替换一次 str.isalnum() 判断字符串是否由数字、中文、字母组成 a1 = "zxd666" a2 = "zxd_666" print(a1.isalnum()) # True print(a2.isalnum()) # False str.isalpha() 判断字符串是否由字母、中文组成 a1 = "zxd最nb" a2 = "zxd666" print(a1.isalpha()) # True print(a2.isalpha()) # False str.isdigit() 判断字符串是否由阿拉伯数字组成 a1 = "666" a2 = "六六六" print(a1.isdigit()) # True print(a2.isdigit()) # False str.isdecimal() 判断字符串是否由十进制数字组成 a1 = "66" a2 = "0x42" print(a1.isdecimal()) # True print(a2.isdecimal()) # False 三、for循环 (一)for循环和while循环的区别 for循环:有限循环 while循环:无限循环 (二)for循环的结构 for i in xxx: 循环体 for:关键字 i:变量名 in:关键字 xxx:可迭代对象 (三)len() 函数 查询数据的长度,通用函数用于所有数据类型 (四)for循环举例 一个面试题 for i in "abcde": pass print(i) # 循环最后给变量i赋值的是e,没有变动e一直指向e 理解for循环和函数自上而下执行机制 num = 1 count = 3 while count: for i in "abc": print(i + str(num),end=",") print() count -= 1 num += 1 输出结果: a1,b1,c1, a2,b2,c2, a3,b3,c3, 好文要顶 关注我 收藏该文 天狼大大 关注 - 3 粉丝 - 26 +加关注 0 0 « 上一篇: Python基础(二) » 下一篇: Python基础(四) posted on 2019-09-14 11:10 天狼大大 阅读(241) 评论(0) 编辑 收藏 刷新评论刷新页面返回顶部 注册用户登录后才能发表评论,请 登录 或 注册, 访问 网站首页。 【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库 【培训】马士兵老师强势回归!Java线下课程全免费,双十一大促! 【活动】京东云服务器_云主机低于1折,低价高性能产品备战双11 【推荐】天翼云双十一翼降到底,云主机11.11元起,抽奖送大礼 【优惠】腾讯云 11.11智惠上云,爆款提前购与双11活动同价 【福利】个推四大热门移动开发SDK全部免费用一年,限时抢! 【优惠】七牛云采购嘉年华,云存储、CDN等云产品低至1折 相关博文: · python基础--day03 · python基础成长之路三 · Python基础篇--字符串 · Python学习日记第三天 · Day3、python基础二 » 更多推荐... 最新 IT 新闻: · 被薅羊毛致关店的果小云下架所有产品:事件严重影响生活 · 科学家成功从190万年前巨猿化石中提取到遗传物质 · 重磅!中国火星探测任务首次公开亮相 · 寒武纪发布边缘AI芯片思元220,性能优于英伟达Xavier NX两倍 · 首颗国产DRAM芯片的技术与专利,合肥长鑫存储的全面深度剖析 » 更多新闻... 昵称: 天狼大大 园龄: 2个月 粉丝: 26 关注: 3 +加关注 < 2019年11月 >https://www.cnblogs.com/tianlangdada/p/11518632.html