一,基础数据类型 总览
int : 用于计算,计数,运算等
str:用于少量数据的存储,个人信息,公司密钥等,便于操作
bool:True,False 及其反馈给用户的对错
列表 list:[] 用于存储大量数据,各种数据类型
元祖 tuple:() 只读列表,不能修改
字典dict:{'key':'value'}:用于存储大量有联系的数据
组合 set:{}:关系测试,多个集合间的测试
二,int
i.bit_length 十进制数i的最少二进制位数 十进制 二进制 1 00000001 2 00000010 3 00000011
例:
i = 21
s1 = i.bit_length()
print(s1)
三,bool
数据类型之间转化 int <-> str srt(int) int(str) int -> bool 非0=True 0=False bool -> int True = 1 False = 0 bool -> str str(bool) True -> 'True' 无意义 str -> bool bool(str) 空字符串 = False ,非空 = True
四, str
字符串是有序的,以字符排序
第一个字符的索引号为0
对于字符串操作形成的都是一个新的字符串,与原来的字符串没有关系
第一部分:索引切片步长
# 索引:按照索引取值,取出来的都是一个字符,形成的字符串。 s1 = 'pythondsfasdf' s2 = s1[0] print(s2,type(s2)) s3 = s1[2] print(s3) s4 = s1[4] s5 = s1[-1] #倒数第一个 print(s4) print(s5) print(s1[-2]) #倒数第二个
#切片:按切片取值,顾头不顾腚 s5 = s1[0:6] #0-5个字符 s51 = s1[:6] #0-5个字符 # print(s5,s51) # print(s1[1:7]) #1-6字符 s6 = s1[6:-1] #6到倒数第二个字符 s61 = s1[6:] #6到最后一个字符 s62 = s1[6:-2] #6到倒数第三个字符 print(s6,s61,s62)
#按照切片+步长 s7 = s1[:5:2] print(s7) s8 = s1[1::2] print(s8) #如果想倒叙取值,加一个反向步长(负号)。 s9 = s1[-1:-5:-1] s10 = s1[-1:-6:-2] print(s9,s10)
第二部分:字符串的常用方法。
#capitalize()首字母大写 ***
print(name.capitalize())#center() 字符串居中前后填充自定义的字符 **
print(name.center(20,'*')) #upper():字母全部转换为大写 ; lower():字母全部转换为小写 ,其他不作操作 ***** print(name.upper()) print(name) print(name.lower())
#应用举例:验证码 username = input('请输入用户名:') code = 'ADfer'.upper() your_code = input('请输入验证码:').upper() print(code, your_code) # if username == 'alex' and (your_code == 'ADFER' or ..or....
#不区分大小写,用户输入的验证码正确情况为2**5种,所以先统一大小写再进行判断
if username == 'alex' and your_code == code: print('账号密码及验证码输入正确') #判断是否以...开头/结尾startswith();endswith() *****
#可使用索引和切片,返回的是布尔值
#使用切片同为顾手不顾腚
name = 'oldBoy' print(name.startswith('o')) print(name.startswith('ol')) print(name.startswith('B',3)) print(name.startswith('B',3)) print(name.startswith('ld', 1, 5)) print(name.startswith('oldBOy')) print(name.endswith('o')) #swapcase 字母大小写翻转 ** print(name.swapcase()) # title 非字母隔开的每个部分的首字母大写 ** s1 = 'alex wusir*taibai6nvshen'
print(s1.title())
# find() 通过元素找索引,找到第一个就返回,没有此元素则返回-1 ***** # index() 通过元素找索引,找到第一个就返回,没有此元素则报错 *****
name = 'oldBoy' print(name.find('B')) print(name.find('ld')) print(name.find('o')) print(name.find('d',1,-1)) print(name.index('q'))
#strip 默认去除字符串前后的空格,换行符,制表符 *****
name = ' oldboy '
print(name)
name1 = '*alex**'
name2 = 'weralexwqwe'
print(name.strip())
print(name1.strip('*')) #可以指定需求去除的符号
print(name2.strip('erw')) # 可以指定字符
#lstrip() 只去除字符串前的
#rstrip() 只去除字符串后的
#举例:
username = input('请输入用户名:').strip() # ' alex '
if username == 'alex':
print('登陆成功...')
#split # 将字符串分割成列表(str---> list) s1 = 'alex wusir taibai' l1 = s1.split() # 默认按照空格分隔 print(l1) s2 = 'alex,wusir,taibai' print(s2.split(',')) s3 = ',alex,wusir,taibai' print(s3.split(',')) s4 = ' alex wusir taibai' print(s4.split(' ')) #分割出的列表只有3个元素
s41 = ' ,alex,wusir,taibai' #分割出的列表有4个元素,对比上面 s5 = 'alexlwle' print(s5.split('l',1)) # 可设置分割次数print(s5.rsplit()) # 从字符串后面开始分割 # join 自定制连接符,将可迭代对象中的元素连接起来 ***** str1 = 'alex'
s2 = '*'.join(str1) s2 = '_'.join(str1) print(s2) # replace ***** str2 = 'alex 是创始人,alex很nb,alex ....'
s3 = str2.replace('alex','SB') s3 = str2.replace('alex','SB',1) # 替换次数可设置 print(s3) #格式化输出:format s1 = '我叫{},今年{},性别{}' #三种方式 #第一种 s2 = '我叫{},今年{},性别{}'.format('alex','28','男') print(s2) #第二种 s3 = '我叫{0},今年{1},性别{2},我依然叫{0}'.format('alex', '28', '男') print(s3) #第三种 s4 = '我叫{name},今年{age},性别{sex}'.format(age='28', name='alex', sex='男') print(s4) #is 系列 name = 'taibai' name1 = 'a123' print(name.isalnum()) # 数字或字母组成,返回布尔值 print(name1.isdigit()) # 判断全部是由整数组成,返回布尔值 print(name.isalpha()) # 全部由字母组成,返回布尔值 #公共方法 name = 'alexaaa' print(name.count('a')) # 有切片 print(len(name)) #计数字符串元素个数
五,for循环:用户按照顺序循环可以迭代对象的内容
''' 结构: for 变量 in 可迭代对象 循环体 ''' msg = 'python123456789' for item in msg: print(item)