数据类型、for循环"/>
day3 数据类型、for循环
day3 数据类型、for循环
-
基础数据类型总览
- 10231 21312 123 int 可以±*/等等
- ‘今天吃了没’ str 存储少量的数据, + * 切片
- True False bool 判断真假
- [12,True,‘alex’,[1,2,3]] list(列表) 存储大量的数据,可以增删改查
- (12,True,‘alex’,[1,2,3]) tuple (元组)存储大量的数据,不可以改变里面的元素
- {‘name‘:‘太白金星’} dict(字典) 存储大量的关联型的数据,查询速度非常快
- set (集合) 交集,并集,差集
-
int
-
主要用于计算 加减乘除
-
还可以用于不同的进制之间的转换。10进制,2进制
-
二进制转换成十进制
0001 1010 ---------16+8+2=26
-
-
-
bool
非空即True
- 例子
s = input ('请输入内容') if s :print('有内容') else :print('没有输入任何内容')
-
str
- 对字符串进行索引,切片出来的数据都是字符串类型
- 从左至右有顺序,下标,索引
- 遵循顾头不固定原则,只能包含头部但不包含尾部
s1 = 'python全栈22期' s2 = s1[0] #返回'p'
- 索引可以从前往后,也可以从后往前
s4 = s1[-1] print(s4) #返回期
- 索引开头如果是0可以省略
s5 = s1[:6] #返回python
- 末尾如果是-1也可以省略
s6 = s1[6:] print s6 #返回全栈22期
- 可以按照切片步长[开始:结束:步长]
s7 = s1[:5:2] print s7 #返回pto
- 同样的也可以倒序
s8 = s1[-1:5:-1] print (s8) #返回期22栈全
-
结论
- 按照索引: s1[index]
- 按照切片: s1[start_index:end_index+1]
- 按照切片步长: s1[start_index:end_index+1:2]
- 反向按照切片步长: s1[start_index:end_index后延一位:-2]
s9 = s1[::-1] print (s9) #返回期22栈全nohtyp
-
应用
- upper lower 全大写或者小写
username = input('请输入用户名:') password = input('请输入密码:') your_code = input('请输入验证码') code = 'QweA' if you_code.upper() == code.upper()if username == 'taibai' and password == '123' :print('登陆成功')else :print('用户或密码错误') else :print('验证码错误')
-
startswitch 检查是否已某个字母开头
- 语法
.startswith('以某个字母开头',从某位开始,到某位结束) #从头开始的话可以省略
- 实例
s = 'taibai' print(s.startswith('t')) print(s.startswith('b',3,6)) #以第三个字母为开头到第五个字母,同样遵循顾头不顾尾原则 #返回结果True
-
replace 代替、替换
- 语法
.replace('原内容','被替换的内容',替换次数) #默认全部替换
- 实例
mag = 'alex很牛逼,alex是老男孩教育的创始人之一,alex长得很帅' msg1 = mag.replace('alex','太白',2) print(msg1) #返回太白很牛逼,太白是老男孩教育的创始人之一,alex长得很帅
-
strip 删除指定的字符,默认空白
- 空白包含 空格,\t(tab) \n(回车)
- 语法
.strip('指定字符')
- 实例
#删除空格 s4 = ' \n太白\t' s5 = s4.strip() print(s5) #返回太白
#删除指定的字符 s4 = 'rre太白qsd' s5 = 's4.strip('reqsd')' print(s5) #返回太白 #原理:从前往后,从后往前,同时查询,只要含有指定字符串中的字符就删去,直到遇到指定字符串以外的字符即停止
-
split 非常重要 切割
- 默认按照空格分割,返回一个列表
- 语法
.split('分隔符',分割次数)
- 实例
#默认按照空格分割 s6 = '太白 女神 吴超' l = s6.split() print(l) #返回['太白', '女神', '吴超']
#指定分隔符 l1 = s6.split(':') print(l1) #返回['太白 女神 吴超']
#指定分割次数 s6 = ' :barry:nvshen:wu' print(s6.split(':',2)) #返回[' ', 'barry', 'nvshen:wu']
-
join 连接 非常好用
- 通常用于在指定字符间插入特定的分隔符
- 语法
'要插入的分隔符'.join(指定的字符变量)
- 实例
s1 = 'alex' s2 = '+'.join(s1) #返回a+l+e+x
#也可用于列表 l1 = ['太白','女神','吴超'] #前提:列表里面的元素都是str类型 s3 = ':'.join(l1) print(s3) #返回太白:女神:吴超
-
count 计数
- 语法
count('指定字符',从第几位开始,到第几位结束) #默认检测所有字符
- 实例
s8 = 'ugasiohfoahfohowhegh' print(s8.count('a'))
-
format 格式化输出
#第一种用法 msg = '我叫{}今年{}性别{}'.format('大壮',25,'男') print(msg) #返回 我叫大壮今年25性别男#第二种用法 msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮',25,'男') print(msg)#第三种用法: msg = '我叫{name}今年{age}性别{sex}'.format(age=25,sex='男',name='大壮') print(msg)
-
is系列
name = 'taibai123' print(name.isalnum())#字符串由字母或数字组成 print(name.isalpha())#字符串只由字母组成 print(name.isdecimal())#字符串只由十进制组成#实例 s1 = input('请输入金额') if s1.isdecimal():int(s1) else:print('你输入有误')
-
for循环
- 语法
for 变量 in iterable :pass #可以和break、continue组合使用 #for else和while else用法一样
- 实例
s1 = '老男孩教育最好的讲师:太白' for i in s1 :print(i)
-
len()函数
-
作用
统计字符串个数
-
语法
len(变量名)
-
-
作业
- 简单的
有变量name = "aleX leNb" 完成如下操作: 移除 name 变量对应的值两边的空格,并输出处理结果 name = "aleX leNb" print(name.strip()) 判断 name 变量是否以 "al" 开头,并输出结果 print(name.startswith('al')) 判断name变量是否以"Nb"结尾,并输出结果 print(name.startswith('Nb',-2)) 将 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',0,5)) 请输出 name 变量对应的值的第 2 个字符? print(name[1]) 请输出 name 变量对应的值的前 3 个字符? print(name[:3]) 请输出 name 变量对应的值的后 2 个字符? print(name[-2:]) 2.有字符串s = "123a4b5c"s = '123a4b5c' 通过对s切片形成新的字符串s1,s1 = "123"s1 = s[:3]print(s1) 通过对s切片形成新的字符串s2,s2 = "a4b"s2 = s[3:-2]print(s2) 通过对s切片形成新的字符串s3,s3 = "1345"s3 = s[::2]print(s3) 通过对s切片形成字符串s4,s4 = "2ab"s4 = s[1:-2:2]print(s4)通过对s切片形成字符串s5,s5 = "c"s5 = s[-1]print(s5) 通过对s切片形成字符串s6,s6 = "ba2"s6 = s [5::-2]print(s6)
- 使用while和for循环分别打印字符串s="asdfer"中每个元素。
s = 'asdfer' number = 0 while number < len(s) :print(s[number])number += 1 for i in s :print(i)
- 使用for循环对s=“asdfer"进行循环,但是每次打印的内容都是"asdfer”
s = "asdfer" for i in s :print(s)
- 使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,…gsb。
for i in s :print(i + 'sb')
- 使用for循环对s="321"进行循环,打印的内容依次是:“倒计时3秒”,“倒计时2秒”,“倒计时1秒”,“出发!”。
s = "321" for i in s :p_s = '倒计时{a}秒'.format(a = i)print(p_s) print('出发!')
- 实现一个整数加法计算器(两个数相加)
number_1 = input('请输入一个加数') number_2 = input("请输入第二个加数") if number_1.isdecimal() and number_2.isdecimal() :print(int(number_1)+int(number_2)) else :print('你输入的参数错误')
- 如:content = input(“请输入内容:”) 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算
addition = input('请输入要计算的数') addition_p = addition.split('+') print( int(addition_p[0]) + int(addition_p[1]))
- 选做题:实现一个整数加法计算器(多个数相加):
如:content = input(“请输入内容:”) 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算
content = input("请输入内容") result = 0 addition = content.split('+') for i in addition :if i.isdecimal() :result = int(i) + resultelse :print('你输入的内容有误请重试')break else :print(result)
- 计算用户输入的内容中有几个整数(以个位数为单位)。
如:content = input(“请输入内容:”) # 如fhdal234slfh98769fjdla
content = input(“请输入内容:”)
a=0 for i in content :if i.isdecimal() :a += 1 print (a)
- 选做题:写代码,完成下列需求:
用户可持续输入(用while循环),用户使用的情况:
输入A,则显示走大路回家,然后在让用户进一步选择:
是选择公交车,还是步行?
选择公交车,显示10分钟到家,并退出整个程序。
选择步行,显示20分钟到家,并退出整个程序。
输入B,则显示走小路回家,并退出整个程序。
输入C,则显示绕道回家,然后在让用户进一步选择:
是选择游戏厅玩会,还是网吧?
选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。
选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。
while True :count = input('请输入A\B\C').upper()if count == 'A' :count_2 = input('''1.公交车2.步行请选择''')if count_2 == '1' :print('10分钟到家')breakelif count_2 == '2' :print('20分钟到家')breakelif count == 'B' :print('走远小路回家')breakelif count == 'C' :print('绕道回家')count_3 = input('选择游戏厅玩儿会儿还是网吧')if count_3 == '游戏厅' :print('一个半小时到家,爸爸在家拿棍子等你.请重新选择')continueelif count_3 =='网吧' :print('两个小时到家,妈妈已经做好战斗准备,请重新选择')continue
- 写代码:计算 1 - 2 + 3 … + 99 中除了88以外所有数的总和
a = 0 b=0 while a <100 :if a == 88 :a += 1continueif a % 2 == 0 :b=b-aelse :b=b+aa+=1 print(b)
- 判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海 ⾃来⽔来⾃海上
count = input("请输入内容") if count ==count[::-1] :print(count)
- 制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进行任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxxco
count=input("请输入名字,地点,爱好,并用逗号隔开:") count_1 = count.split(',') count_2='敬爱可亲的{name},最喜欢在{place},干{hobby}'.format(name=count_1[0],place=count_1[1],hobby=count_1[2]) print(count_2)
更多推荐
day3 数据类型、for循环
发布评论