基础数据类型 总览
int:用于计算,计数,运算等。 1,2,3 100......
str:'这些内容[]' 用户少量数据的存储,便于操作。
bool: True, False,两种状态,机器反馈给用户的对,错。
list: [1,'alex', True,[],(),{} ....] 大量的数据,各种数据类型,操作方便。
tuple: (1,'alex', True,[],(),{} ....),只读列表。
dict: 字典。大量的关联型数据。
{'name':'alex','name_list':[司徒,慈禧,李莲英...],'太白':{'name':'太白','sex':男}}
set:集合。{} 关系测试。
字符串Str
对字符串的下面这两部分操作,形成的都是一个新的字符串,与原来的字符串没有关系。
第一部分:索引切片步长。 *****
按照索引取值,取出来的都是一个字符串,形成的字符串。
索引取值
s1 = 'python基础属性类型' s2 = s1[0] print(s2) #p s3 = s1[2] print(s3) #t s4 = s1[-1] print(s4) #型 可以从后面往前取
切片取值,顾头不顾腚
s1 = 'python基础属性类型' s5 = s1[0:2] print(s5) #py 虽然t是第三个位置,但是没有取得。因为切片取值顾头不顾腚。 s6 = s1[:2] s7 = s1[:] #此处尾如果写-1 那么取不到最后一个元素 print(s6,s7) #py python基础属性类型 如果从头取或者取到尾 ,头和尾都可以省略
切片+步长
s1 = 'python基础属性类型' s8 = s1[0:5:2] print(s8) #pto 从零个位置取到第六个索引位置,步长2. # #如果想倒叙取值,加一个反向步长(负号),不加不打印内容 s9 = s1[-1:-5:-1] s10 = s1[-1:-6:-2] print(s9,s10) #型类性属 型性础,s9步长1,s10步长2
第二部分:字符串的常用方法
capitalize() 首字母大写,其他如果有大写变小写 ***
s1 = 'yigeRen' #print(s1.capitalize()) #Yigeren
center() 字符串居中前后填充自定义字符 **
s1 = 'yigeRen' print(s1.center(20,'*')) #******yigeRen*******
upper():全大写 lower():全小写 *****
upper() 方法将字符串中的小写字母转为大写字母。
s1 = 'yigeRen' print(s1.upper()) #YIGEREN print(s1.lower()) #yigeren
username = input('用户名>>>') Code = 'adfe'.upper() yourCode = input('验证码>>>').upper() if username == 'admin' and Code == yourCode : print(Code,yourCode) # print('登录成功')
startswith() endswith() *****
startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。
如果参数 beg 和 end 指定值,则在指定范围内检查。
print(s1.startswith('y')) #True print(s1.startswith('yi')) #True print(s1.startswith('g',2)) #True,索引为2的开始是不是g开头
swapcase() 大小写翻转 **
s1 = 'yigeRen' print(s1.swapcase()) #YIGErEN
title() 非字母隔开的每个部分的首字母大写 **
s2 = 'yigeren*mianshi#tianqihao' print(s2.title()) #Yigeren*Mianshi#Tianqihao
find() 通过元素找索引,找到第一个就返回,没有此元素则返回-1 *****
print(s1.find('i')) #1 print(s1.find('yi')) #0,2个挨着一样的取到第一个就返回 print(s1.find('h')) #-1,未找到 print(s1.find('e',2,-1)) #3 ,指定索引区域内查找相关元素,返回元素在当前字符串的索引位置。
index() 通过元素找索引,找到第一个就返回,没有此元素则报错 *****
s1 = 'yigeRen' print(s1.index('h')) #ValueError: substring not found
strip() 默认去除字符串前后的空格,换行符,制表符 *****
name = '\t yigeren\n' print(name) #yigeren
name1 = '***yigeren**' print(name1.strip('*')) #yigeren
name2 = 'weerkangwqewr' print(name2.strip('erw')) #kangwq,从前后分别开始检索字符串,如果有不能去除的就停止后面的检索 #lstrip(),从左侧去空格。 rstrip(),从右侧去空格
username = input('请输入用户名:').strip() # 'kang ' if username == 'kang': print('登陆成功...')
split() # 将字符串分割成列表(str---> list),默认是以空格为分隔符,可以具体指定。
s1 = 'tianjin beijing shanghai' print(s1.split()) #['tianjin', 'beijing', 'shanghai']
s2 = 'tianjin*beijing*shanghai' print(s2.split('*')) #['tianjin', 'beijing', 'shanghai']
s3 = '*tianjin*beijing*shanghai' print(s3.split('*')) #['', 'tianjin', 'beijing', 'shanghai'] ,保留了*分割的第一个空列表。
s4 = ' tianjin beijing shanghai' print(s4.split()) #['tianjin', 'beijing', 'shanghai'],默认空格的去除了第一个空元素,指定其他分隔符的则不会去除。
s5 = ' tianjin beijing shanghai' print(s5.split(' ')) #['', 'tianjin', 'beijing', 'shanghai'] 如果写上条件空格,则第一个空格正常分隔
s6 = ' tianjin beijing shanghai' print(s6.split(' ',1)) #['', 'tianjin beijing shanghai'] 指定参数,分隔几次
rsplit()
join() 自定制连接符,将可迭代对象中的元素连接起来 *****
s5 = 'yigeren' print('_'.join(s5)) #y_i_g_e_r_e_n
replace() 字符串替换 *****
s6 = 'yi很不错,yi要努力,yi要加油' print(s6.replace('yi','你')) #你很不错,你要努力,你要加油 print(s6.replace('yi','你',1)) #后面的1,替换次数。#你很不错,yi要努力,yi要加油
格式化输出:format()
s7 = '我是{},今年{},性别{}'
# 三种方式
# #第一种 print(s7.format('kang',19,'男')) #我是kang,今年19,性别男
# #第二种,可以指定的索引重复使用 # s3 = '我叫{0},今年{1},性别{2},我依然叫{0}'.format('kang', '28', '男') # print(s3) #我叫kang,今年28,性别男,我依然叫kang
# #第三种,键值对方式替换,不用考虑位置对应问题。 s4 = '我叫{name},今年{age},性别{sex}'.format(age='28', name='太白', sex='男') print(s4) #我叫太白,今年28,性别男
is 系列
name = 'kang' name1 = 'a123' print(name.isalnum()) #True # 数字或字母组成 print(name1.isdigit()) #False # 判断全部是由整数组成 print(name.isalpha()) #True # 全部由字母组成
# 公共方法
name = 'taitaiaaa' print(name.count('a')) #5 有切片 print(len(name)) #9
数据类型之间的相互转换
''' int str bool 三者转换 str <---> bytes str <---> list dict.keys() dict.values() dict.items() list() tuple <---> list dict ---> list '''
int
i = 4 # print(i.bit_length()) # 查询十进制转化成二进制占用的最小位数 *
''' 十进制 二进制 1 0000 0001 2 0000 0010 3 0000 0011 4 0000 0100 .... '''
bool
数据类型之间的转化。 *****
int ---> str str(int) int(str)
int ----> bool : 非零及True,零即为False, True ---> 1 False ----> 0
bool <---> str:
print(bool('a')) print(bool('asb'))
str ---> bool 空字符串 bool False ,非空即True
s1 = ' ' print(bool(s1)) name = input(">>>") if name: print('666') else: print('无内容')
bool ---> str
print(str(True),type(str(True)))
#True <class 'str'>
str ---> list
s1 = 'alex wusir taibai'
l1 = s1.split()
print(l1)
list ---> str 此list中的元素全部是str类型
l1 = ['alex', 'wusir', 'taibai', 100] #100的整数不行。
s2 = ' '.join(l1)
print(s2) #TypeError: sequence item 3: expected str instance, int found
tuple <---> list
tu2 = (0,2,3)
l1 = list(tu2)
print(l1)
l1 = [1,2,3]
tu1 = tuple(l1)
print(tu1)
dict ---> list
dic1 = {'name': 'alex', 'age': 1000}
l1 = list(dic1)
print(l1) #
# 有问题
l2 = ['name', 'age']
dic2 = dict(l2)
print(dic2) #ValueError: dictionary update sequence element #0 has length 4; 2 is required
0 " [] () {} set() ---> bool False
#day3作业及默写 # # 1,有变量name = "aleX leNb" 完成如下操作: name = "aleX leNb" # 1) 移除 name 变量对应的值两边的空格,并输出处理结果 # 2) 移除name变量左边的"al"并输出处理结果 # 3) 移除name变量右面的"Nb",并输出处理结果 # 4) 移除name变量开头的a"与最后的"b",并输出处理结果 # 5) 判断 name 变量是否以 "al" 开头,并输出结果 # 6) 判断name变量是否以"Nb"结尾,并输出结果 # 7) 将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果 # 8) 将name变量对应的值中的第一个"l"替换成"p",并输出结果 # 9) 将 name 变量对应的值根据 所有的"l" 分割,并输出结果。 # 10) 将name变量对应的值根据第一个"l"分割,并输出结果。 # 11) 将 name 变量对应的值变大写,并输出结果 # 12) 将 name 变量对应的值变小写,并输出结果 # 13) 将name变量对应的值首字母"a"大写,并输出结果 # 14) 判断name变量对应的值字母"l"出现几次,并输出结果 # 15) 如果判断name变量对应的值前四位"l"出现几次,并输出结果 # 16) 从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果 # 17) 从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果 # 18) 从name变量对应的值中找到"X le"对应的索引,并输出结果 # 19) 请输出 name 变量对应的值的第 2 个字符? # 20) 请输出 name 变量对应的值的前 3 个字符? # 21) 请输出 name 变量对应的值的后 2 个字符? # 22) 请输出 name 变量对应的值中 "e" 所在索引位置? # 2,有字符串s = "123a4b5c" # # 1)通过对s切片形成新的字符串s1,s1 = "123" # 2)通过对s切片形成新的字符串s2,s2 = "a4b" # 3)通过对s切片形成新的字符串s3,s3 = "1345" # 4)通过对s切片形成字符串s4,s4 = "2ab" # 5)通过对s切片形成字符串s5,s5 = "c" # 6)通过对s切片形成字符串s6,s6 = "ba2" # # 3,使用while和for循环分别打印字符串s="asdfer"中每个元素。 # # 4,使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。 # # 5,使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,...gsb。 # 6,使用for循环对s="321"进行循环,打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。 # # # 7,实现一个整数加法计算器(两个数相加): # 如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。 # 8,升级题:实现一个整数加法计算器(多个数相加): # 如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。 # # 9,计算用户输入的内容中有几个整数(以个位数为单位)。 # 如:content = input("请输入内容:") # 如 fhda234slfh9 # 10、写代码,完成下列需求: # 用户可持续输入(用while循环),用户使用的情况: # 输入A,则显示走大路回家,然后在让用户进一步选择: # 是选择公交车,还是步行? # 选择公交车,显示10分钟到家,并退出整个程序。 # 选择步行,显示20分钟到家,并退出整个程序。 # 输入B,则显示走小路回家,并退出整个程序。 # 输入C,则显示绕道回家,然后在让用户进一步选择: # 是选择游戏厅玩会,还是网吧? # 选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。 # 选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。 # # 11、写代码:计算 1 - 2 + 3 ... + 99 中除了-88以外所有数的总和? # 1 - 2 + 3 ... + 99 # 16、制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx # # 17、等待⽤户输⼊内容,检测⽤户输⼊内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输⼊”,并允许⽤户重新输⼊并打印。敏感字符:“⼩粉嫩”、“⼤铁锤” # # # 明日默写内容: # 分别用while,for循环输出字符串s = input("你想输入的内容")的每一个字符。
#day3作业及默写 # # 1,有变量name = "aleX leNb" 完成如下操作: # name = "aleX leNb" # 1) 移除 name 变量对应的值两边的空格,并输出处理结果 #print(name.strip()) # 2) 移除name变量左边的"al"并输出处理结果 #print(name[2:]) # 3) 移除name变量右面的"Nb",并输出处理结果 #print(name[:-2]) # 4) 移除name变量开头的a"与最后的"b",并输出处理结果 #print(name[1:-1]) # 5) 判断 name 变量是否以 "al" 开头,并输出结果 #print(name.startswith('al')) # 6) 判断name变量是否以"Nb"结尾,并输出结果 #print(name.endswith('Nb')) name = "aleX leNb" # 7) 将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果 #print(name.replace('l','p')) # 8) 将name变量对应的值中的第一个"l"替换成"p",并输出结果 #print(name.replace('l','p',1)) # 9) 将 name 变量对应的值根据 所有的"l" 分割,并输出结果。 #print(name.split('l')) # 10) 将name变量对应的值根据第一个"l"分割,并输出结果。 #print(name.split('l',1)) # 11) 将 name 变量对应的值变大写,并输出结果 #print(name.upper()) # 12) 将 name 变量对应的值变小写,并输出结果 #print(name.lower()) # 13) 将name变量对应的值首字母"a"大写,并输出结果 #print(name.capitalize()) # 14) 判断name变量对应的值字母"l"出现几次,并输出结果 # sum =0 # for i in name: # if i == 'l': # sum += 1 # print(sum) # 15) 如果判断name变量对应的值前四位"l"出现几次,并输出结果 # sum =0 # for i in name[0:5]: # if i == 'l': # sum += 1 # print(sum) # 16) 从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果 #print(name.index('N')) # 17) 从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果 #print(name.find('N')) # 18) 从name变量对应的值中找到"X le"对应的索引,并输出结果 #print(name.find("X le")) # 19) 请输出 name 变量对应的值的第 2 个字符? #print(name[1]) # 20) 请输出 name 变量对应的值的前 3 个字符? #print(name[:3]) # 21) 请输出 name 变量对应的值的后 2 个字符? #print(name[-2:]) # 22) 请输出 name 变量对应的值中 "e" 所在索引位置? #print(name.index('e')) # 2,有字符串s = "123a4b5c" s = "123a4b5c" # 1)通过对s切片形成新的字符串s1,s1 = "123" # s1=s[:3] # print(s1) # 2)通过对s切片形成新的字符串s2,s2 = "a4b" # s2=s[3:6] # print(s2) # 3)通过对s切片形成新的字符串s3,s3 = "1345" # s3 = s[::2] # print(s3) # 4)通过对s切片形成字符串s4,s4 = "2ab" # s4 =s[1:-1:2] # print(s4) # 5)通过对s切片形成字符串s5,s5 = "c" # s5 = s[-1:] # print(s5) # 6)通过对s切片形成字符串s6,s6 = "ba2" # s6 = s[-3:0:-2] # print(s6) # 3,使用while和for循环分别打印字符串s="asdfer"中每个元素。 #while # s="asdfer" # i =0 # while i < len(s): # print(s[i]) # i +=1 # #for # s="asdfer" # for i in s: # print(i) # 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 i in s: # print(i+'sb') # 6,使用for循环对s="321"进行循环,打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。 # # s="321" # for i in s: # print('倒计时'+i+'秒') # print('出发') # 7,实现一个整数加法计算器(两个数相加): # 如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。 # content = input("请输入内容:").strip() # num1 = content[:content.find('+')] # num2 = content[content.find('+')+1:] # result = int(num1)+int(num2) # print(result) # 8,升级题:实现一个整数加法计算器(多个数相加): # 如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。 # content = input("请输入内容:").strip() # lst = content.split('+') # sum = 0 # for i in lst: # sum += int(i.strip()) # print(sum) # 9,计算用户输入的内容中有几个整数(以个位数为单位)。 # 如:content = input("请输入内容:") # 如 fhda234slfh9 # sum1 = 0 # content = input("请输入内容:").strip() # for i in content: # if i.isdigit(): # sum1 += 1 # print(sum1) # 10、写代码,完成下列需求: # 用户可持续输入(用while循环),用户使用的情况: # 输入A,则显示走大路回家,然后在让用户进一步选择: # 是选择公交车,还是步行? # 选择公交车,显示10分钟到家,并退出整个程序。 # 选择步行,显示20分钟到家,并退出整个程序。 # 输入B,则显示走小路回家,并退出整个程序。 # 输入C,则显示绕道回家,然后在让用户进一步选择: # 是选择游戏厅玩会,还是网吧? # 选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。 # 选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。 # while True: # msg = input('请选择回家方式,A,B,C').strip() # if msg == 'A': # msg_a = input('是选择公交车,还是步行?') # if msg_a == '公交车': # print('10分钟到家') # break # else: # print('20分钟到家') # break # elif msg == 'B': # print('走小路回家') # break # else: # print('显示绕道回家') # msg_c = input('是选择游戏厅玩会,还是网吧') # if msg_c =='游戏厅': # print('一个半小时到家,爸爸在家,拿棍等你。') # continue # else: # print('两个小时到家,妈妈已做好了战斗准备。') # continue # 11、写代码:计算 1 - 2 + 3 ... + 99 中除了-88以外所有数的总和? # 1 - 2 + 3 ... + 99 # 16、制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx # # name = input('请输入姓名') # address = input('请输入地点') # love = input('请输入爱好') # print('敬爱可亲的{name1},最喜欢在{address1}地⽅⼲{love1}'.format(name1=name,address1=address,love1=love)) # 17、等待⽤户输⼊内容,检测⽤户输⼊内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输⼊”,并允许⽤户重新输⼊并打印。 # 敏感字符:“⼩粉嫩”、“⼤铁锤” # # 明日默写内容: # 分别用while,for循环输出字符串s = input("你想输入的内容")的每一个字符。
车牌摇号小程序

ps:部分内容来自于互联网整理,如有侵权请联系我们,我们会在看到通知后24小时内做出处理。
posted on
浙公网安备 33010602011771号