python_0基础开始_day03
2024-09-01 04:41:03
第三节
一、整形和布尔值的转换
int整型
python3: 全部都是整型
python2: 整型,长整型long
十进制转换二进制
# 将十进制的168转换为二进制 #得出结果 将十进制的168转换为二进制,(10101000)2 #分析:第一步,将168除以2,商84,余数为0。 #第二步,将商84除以2,商42余数为0。 #第三步,将商42除以2,商21余数为0。 #第四步,将商21除以2,商10余数为1。 #第五步,将商10除以2,商5余数为0。 #第六步,将商5除以2,商2余数为1。 #第七步,将商2除以2,商1余数为0。 #第八步,将商1除以2,商0余数为1。 #第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000 print(bin(168))
二进制转换十进制
# 111110# 2进制 - 10进制# 0 * 2**0 + 1 * 2 ** 1 + 1 * 2**2 + 1* 2**3 + 1 * 2 ** 4 + 1 * 2 ** 5# 0 + 2 + 4 + 8 + 16 + 32 = 62print(int("111110",2))
bool布尔值
非0即True,0是False
True == 1
False == 0
字符串中只要没有内容就是False
例:
a = bool(0)print(a) # False a = int(True)print(a) # 1a = int(False)print(a) # 0a = int(False)print(a) # Truea = bool(" ")print(a) # Truea = bool("")print(a) # False
二、字符串详解
python中只要是引号引起来的就是字符串
字符串用于存储数据,存储少量数据
字符串中的每一个字母或者字符都称为元素
索引index
索引的时候不能超出索引的最大值
切片and步长
切片的时候可以超出索引值(起始都可以超出)
步长:1,2,3从左至右
-1,-2,-3从右至左
例:
# 从左向右排a = "0123456"# 从左向右排a = "-7-6-5-4-3-2-1"a = "风yu雷dian宝元"print(a[4]) # dprint(a[-4]) # aname = "alex,wusir,太白金星,女神,吴超"print(name[11:14:2]) # 太金print(name[-4:-6:-1]) # 神女print(name[-7:-12:-2]) # 星白,print(name[::-1]) # 超吴,神女,星金白太,risuw,xela
三、字符串的方法
upper() —— 全部大写
name = "alex"a = name.upper() # 全部大写print(a)print(name)
lower() —— 全部小写
name = "ALEX"a = name.lower() # 全部小写print(name)print(a)
startswith() —— 以什么开头 -- 返回的是布尔值
endswith() —— 以什么结尾 -- 返回的是布尔值
name = "alex"print(name.startswith('e',2,3)) # 以什么开头 -- 返回的是布尔值print(name.endswith("x",1,4)) # 以什么结尾 -- 返回的是布尔值
count() —— 统计,计数
name = "aliwusirtaibIa"print(name.count("i")) # 统计,计数 区分大小写
strip() —— 脱 默认脱(脱头尾两端的空格,换行符\n,制表符\t)
pwd = " alexdsb "a = pwd.strip() # 脱 默认脱(脱头尾两端的空格,换行符\n,制表符\t)print(a)pwd = "alalexasdsbla"a = pwd.strip("al") # 去除头尾两端指定的内容,"al"不分顺序print(a)
split() —— 分割(默认空格,换行符\n,制表符\t)
name = "alex_wu_si_r"a = name.split("_") # 分割(默认空格,换行符\n,制表符\t)print(a) # ['alex', 'wusir']a = name.split("_",2) # 指定分割次数 print(a)
replace() —— 全部替换
name = "alex,wusir,ta,i,b,a,i"a = name.replace(",",".") # 全部替换print(a)a = name.replace(",",".",4) # 指定替换的次数print(a)
format"{}" —— 按照位置顺序进行填充
name = "{}今年:{}".format("宝元",18) # 按照位置顺序进行填充print(name)name = "{1}今年:{0}".format("宝元",18) # 按照索引进行填充print(name) # 18今年:宝元name = "{name}今年:{age}".format(name="宝元",age=18) # 按照名字进行填充print(name)
isdigit() —— 判断字符串中的内容是否全是阿拉伯数字
indecimal() —— 判断是不是十进制数
isalnum() —— 判断是不是数字,字母,中文
isalpha() —— 判断是不是字母,中文
msg = "alex"print(msg.isdigit()) # 判断字符串中的内容是不是全都是数字(阿拉伯数字)Falseprint(msg.isdecimal()) # 判断是不是十进制数Falseprint(msg.isalnum()) # 判断是不是数字,字母,中文Tureprint(msg.isalpha()) # 判断是不是字母,中文Ture
len() —— 查看字符串中共有多少元素
msg = "原谅我这一生不羁放纵爱自由"print(len(msg)) # 公用的方法: len
四、for循环
for —— 关键字
i —— 变量名(可随意修改)
in —— 关键字
mag —— 可迭代对象(可迭代对象: Python数据类型中 除了int,bool其余都可以迭代)
基本结构:
msg = "原谅我这一生不羁放纵爱自由"for i in msg: print(i) # 逐行输出从原到由print(i) # 输出循环体最后一个字符# 面试题for a in "abcds": pass # 过 占位print(a) # 输出最后一个元素for i in "dsb": i = i+"sb" # 相当于字符串和字符串相加 print(i)
练习题
name = "aleX leNb"# 移除 name 变量对应的值两边的空格,并输出处理结果print(name.strip())# 判断 name 变量是否以 "al" 开头,并输出结果print(name.startswith("al"))# 判断name变量是否以"Nb"结尾,并输出结果print(name.endswith("Nb"))# 将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果print(name.replace("l","p"))# 将name变量对应的值中的第一个"l"替换成"p",并输出结果print(name.replace("l","p",1))# 将 name 变量对应的值根据 所有的"l" 分割,并输出结果。print(name.split("l"))# 将name变量对应的值根据第一个"l"分割,并输出结果。print(name.split("l",1))# 将 name 变量对应的值变大写,并输出结果print(name.upper())# 将 name 变量对应的值变小写,并输出结果print(name.lower())# 判断name变量对应的值字母"l"出现几次,并输出结果print(name.count("l"))# 如果判断name变量对应的值前四位"l"出现几次,并输出结果print(name.count("l",4))# 请输出 name 变量对应的值的第 2 个字符?print(name[2])# 请输出 name 变量对应的值的前 3 个字符?print(name[:3])# 请输出 name 变量对应的值的后 2 个字符?print(name[-2:])-------------------------------------------s = "123a4b5c"# 通过对s切片形成新的字符串s1,s1 = "123"print(s[:3])# 通过对s切片形成新的字符串s2,s2 = "a4b"print(s[3:-2])# 通过对s切片形成新的字符串s3,s3 = "1345"print(s[:-1:2])# 通过对s切片形成字符串s4,s4 = "2ab"print(s[1:-2:2])# 通过对s切片形成字符串s5,s5 = "c"print(s[-1])# 通过对s切片形成字符串s6,s6 = "ba2"print(s[-3::-2])# 3.使用while和for循环分别打印字符串s="asdfer"中每个元素。s = "asdfer"for i in s: print(i)cou = 0while cou < len(s): print(s[cou]) cou += 1# 4.使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。s = "asdfer"for i in s: print(s)# 5.使用for循环对s="abcdefg"进行循环,# 每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,...gsb。s = "abcdefg"for a in s: a = a + "sb" print(a)# 6.使用for循环对s="321"进行循环,# 打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。s = "321"for b in s: print(f"倒计时{b}秒")print("出发")# 7.实现一个整数加法计算器(两个数相加):# 如:content = input("请输入内容:")# 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。content = input("请输入内容:").split("+")i = int(content[0].strip()) + int(content[1].strip())print(i)# 8.选做题:实现一个整数加法计算器(多个数相加):# 如:content = input("请输入内容:")# 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。content = input("请输入内容:").split("+")s = 0for i in content: i = int(i.strip()) # 每个输入的字符串,去空格,转换成整型 s += iprint(s)# 9.计算用户输入的内容中有几个整数(以个位数为单位)。# 如:content = input("请输入内容:") # 如fhdal234slfh98769fjdlaa = 0content = input("请输入内容:").strip()for i in content: if i.isdecimal(): a += 1print(a)# 10.写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?"""num = 0ss = 0while num < 99: num += 1 if num == 88: num += 1 ss = ss + numelse: print(ss-2)"""num1 = 0s1 = 0while num1 < 99: num1 += 1 if num1 % 2 == 1: s1 += num1 elif num1 == 88: continue else: s1 -= num1print(s1)# 11.选做题:写代码,完成下列需求:# 用户可持续输入(用while循环),用户使用的情况:# 输入A,则显示走大路回家,然后在让用户进一步选择:# 是选择公交车,还是步行?# 选择公交车,显示10分钟到家,并退出整个程序。# 选择步行,显示20分钟到家,并退出整个程序。# 输入B,则显示走小路回家,并退出整个程序。# 输入C,则显示绕道回家,然后在让用户进一步选择:# 是选择游戏厅玩会,还是网吧?# 选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。# 选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。f = Truewhile f: c = input("放学了:A:走大路回家;B:走小路回家;C:绕道回家。").strip().upper() if c.isalpha() and c in "ABC": ... else: print("输入有误,请重新输入!") continue if c == "A": print("走大路回家") while True: d = input("选择公交车,还是步行?").strip() if d == "公交车" or "公交": print("10分钟到家") f = False break elif d == "步行" or "buxing": print("20分钟到家") f = False break else: print("输入有误,请重新输入") continue elif c == "B": print("走小路回家!") f = False else: print("绕道回家!") while True: g = input("游戏厅玩会,还是网吧?").strip() if g == "游戏厅": print("一个半小时到家,爸爸在家,拿棍等你") break elif g == "网吧": print("两个小时到家,妈妈已做好了战斗准备") break else: print("输入有误,请重新输入") continue# 12.选做题:判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的.# 例如, 上海⾃来⽔来⾃海上msg = input("请输入回文:")if msg[::1] == msg[::-1]: print("是回文")else: print("不是回文")# 13.制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进行任意现实# 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxxname = input('姓名:')paly = input('爱好:')palce = input('喜欢的地方:')mas = f"非常帅气的{name},最喜欢在{palce},{paly}"print(mas)
后续还会持续更新,从入门到放弃 ^.^。
最新文章
- jquery获取url参数及url加参数的方法
- Windows Phone中获取UserAgent
- Java for LeetCode 191 Number of 1 Bits
- BZOJ3289 Mato的文件管理(莫队算法+树状数组)
- Codeforces 381 简要题解
- Codeforces Round #274 (Div. 1) A. Exams 贪心
- Laravel Quickstart
- hdu 1241 Oil Deposits(DFS求连通块)
- 使用@class和#import的细节问题
- EF批量插入(转)
- UOJ#449. 【集训队作业2018】喂鸽子 min-max容斥,FFT
- 7.Ajax
- 关于py的思考
- pytorch入门与实践-2.2-CIFAR10分类网络
- 小结:ES7——async和await初识
- ScrollView嵌套ListView,禁止ListView的滚动,只让ScrollView可以滚动
- linux常用命令大全3--rpm安装软件
- 服务器修改用户密码注意iis部署的网站问题
- git 基础学习笔记
- 63. Unique Paths II (Graph; DP)
热门文章
- centos7 中安装 htop
- 如何确保TCP协议传输稳定可靠?
- Spring Framework 条件装配 之 @Conditional
- 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题
- 玲珑OJ 1083:XJT Love Digits(离线处理+哈希)
- oracle获取当天时间的最开始的时间和最结尾的时间
- 热度3年猛增20倍,Serverless&;云开发的技术架构全解析
- Linux系统下word转pdf,xls转pdf,ppt转pdf
- android surfaView surfaHolder video 播放
- 基础篇-1.2Java世界的规章制度(上)