Day3 python基础

一,基础数据类型 总览
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 = '\t oldboy\n'
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)

猜你喜欢

转载自www.cnblogs.com/lianyeah/p/9432119.html
今日推荐