Python之路Day3
今日大纲
1.初识基础数据类型
2.int(数字)
3.bool(布尔值)
4.str(字符串)
5.for循环结构
&1.初识基础数据类型
int:用于计算。
str:'alex' ,'1235443543',存储少量的数据。
'[1,2,3]'
bool:True, False.
list: ['name',True,[]....],各种数据类型的数据,大量的数据,便于操作.
tuple 元组。() 只读列表。
dict:{'name':'老男孩',
'name_list':['反面教材',.....],
'alex':{'age':40,
'hobby':'old_women',
}
},
存储大量的数据,关系型数据。
set:{'wusir', 'alex', ....}
&2.int(数字)
十进制转换成二进制需要的有效位数
例:
i = 3
print(i.bit_length())
'''
1 0000 0001
2 0000 0010
3 0000 0011
100
'''
&3.bool(布尔值)
布尔值作为条件判断,在if结构、while结构、for循环结构中,当条件成立时,内部将条件转换为布尔值True;条件不成立时,
转换为False。
没有使用方法。
bool,int,str 三者可相互转换。
3.1 bool与int转换
(1)int ==> bool
print(bool(100)) print(bool(-1)) print(bool(0))
执行结果:
True
True
False
(2)bool ==> int
print(int(True)) print(int(False))
执行结果:
1
0
3.2 bool与str转换
(1)bool == > str
print(str(True)) print(str(False))
结果:
"True" "False"
(2)str == > bool 非空即True,""空字符即False
print(bool("zzw")) print(bool(""))
执行结果:
True
False
3.3 str与int转换
(1)str == > int 字符串中只有数字时,才可以转换为整型
msg = int(input("请输入数字:")) print(msg,type(msg))
执行结果:
请输入数字:12345 12345 <class 'int'>
(2) int == > str
print(str(100))
执行结果:
"100"
&4.str(字符串)
4.1 索引,切片,步长
s = "abcdefgh" s1 = s[0] #打印 a print(s1) s2 = s[-1] #打印 h print(s2) s3 = s[1] #打印b print(s3) s4 = s[0:3] #切片时,区间左闭右开 print(s4) #打印abc s5 = s[2:5] #打印cde print(s5) s6 = s[0:] #全部打印 print(s6) s7 = s[0:-1] #打印abcdefg print(s7) s8 = s[:] #全部打印 print(s8) s9 = s[:3] #打印abc print(s9) s10 = s[0:5:2] #在前五个字符中,步长为2,打印 print(s10) s11 = s[:5:2] print(s11) #在前五个字符中,步长为2,打印 s12 = s[2::2] #从第三个字符开始到最后,步长为2,打印 print(s12) s13 = s[-1:-5:-1] #从倒数第一个字符,逆向打印到字倒数第四个字符 print(s13) s14 = s[-1: :-1] #从倒数第一个字符,逆向打印全部字符 print(s14) s15 = s[-2:-6:-2] print(s15) s16 = s[-1:-4] #逆向打印,必须设置步长 print(s16) s17 = s[-1:-4:-1] print(s17)
执行结果:
a
h
b
abc
cde
abcdefgh
abcdefg
abcdefgh
abc
ace
ace
ceg
hgfe
hgfedcba
ge
hgf
4.2 字符串的方法
4.2.1 ***级别方法
(1)*** upper:全大写
lower:全小写
s = 'laoNANhai' print(s) print(s.upper()) print(s.lower())
例题:验证码不区分大小写
code = input("请输入验证码,不区分大小写:").upper() if code == "asDF".upper(): print("验证成功!") else: print("验证失败!")
(2)*** startswith :判断以什么内容开头,
返回bool,可以切片,切片用逗号隔开。
***endswith
s = 'laoNANhai' print(s.startswith("l")) print(s.endswith("i")) print(s.startswith("N",3,6))
执行结果:
True
True
True
(3)***通过元素找索引
index:通过元素找索引,可切片,找不到报错
find: 通过元素找索引,可切片,找不到返回-1
s = 'laoNANhai' print(s.find("N",0,5)) print(s.index("N",0,5)) print(s.find("N"))#只返回第一个找到的值,顺序从左至右 print(s.index("N")) print(s.find("q")) #找不到返回-1 print(s.index("q"))#找不到报错
(4)*** strip 去除前后端的空格,换行符,制表符。
ss = '\talex\n' print(ss) print(ss.strip()) s1 = "walexw" print(s1) print(s1.strip("w"))
执行结果:
alex
alex
walexw
alex
ss = 'ablabsexsba' print(ss) print(ss.strip("abl"))
执行结果:
ablabsexsba
sexs
ss = ' ablabsexsba ' print(ss) print(ss.lstrip()) print(ss.rstrip())
执行结果:
ablabsexsba
ablabsexsba
ablabsexsba
例题:如在输入密码中,用户可能存在多输入空格的情况,用strip去除空格
password = input("请输入密码:").strip() if password == "123456": print("输入正确") else: print("输入错误")
执行结果:
请输入密码: 123456
输入正确
(5)***split str ---> list
默认以空格分割,
s = 'wusir alex taibai' print(s) print(s.split()) 执行结果: wusir alex taibai ['wusir', 'alex', 'taibai']
st = 'wusir,alex,taibai' print(st) print(st.split(",")) 执行结果: wusir alex taibai ['wusir', 'alex', 'taibai']
st1 = 'QwusirQalexQtaibai' print(st1) print(st1.split("Q")) print(st1.split("Q",2)) 执行结果: QwusirQalexQtaibai ['', 'wusir', 'alex', 'taibai'] ['', 'wusir', 'alexQtaibai']
(6)***join
在某些情况下,list --- >str
s = 'alex' print(s) print("+".join(s)) 执行结果: alex a+l+e+x
l = ['wusir', 'alex', 'taibai'] s111 = ' '.join(l) #列表转换为字符串 print(s111,type(s111)) 执行结果: wusir alex taibai <class 'str'>
(7)***repalce
s = '失败失败ghlasdfg失败' print(s) print(s.replace("失败","成功")) print(s.replace("失败","成功",2)) 执行结果: 失败失败ghlasdfg失败 成功成功ghlasdfg成功 成功成功ghlasdfg失败
4.2.2 **级别方法
(1)**capitalize 首字母大写,其余字母小写
s = 'laoNANhai' print(s) print(s.capitalize()) 执行结果: laoNANhai Laonanhai
4.2.3 *级别方法
(1)* 居中 center
s = 'laoNANhai' print(s) print(s.center(27,"*")) 执行结果: laoNANhai *********laoNANhai*********
(2)* swapcase 大小写翻转
s = 'laoNANhai' print(s) print(s.swapcase()) 执行结果: laoNANhai LAOnanHAI
(3)* title() 非字母隔开的每个单词的首字母大写。
ss = 'gdsj wusir6taibai*ritian' print(ss) print(ss.title()) 执行结果: gdsj wusir6taibai*ritian Gdsj Wusir6Taibai*Ritian
(4)
name='jinxin123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成
4.2.4 公共方法
(1)len() 总个数
s = 'laoNANhai' print(len(s)) 打印结果: 9
(2)format格式化输出,
三种方式:
[1]
msg = "我叫{},今年{}岁,爱好{}。".format("david".capitalize(),23,"打篮球") print(msg) 执行结果: 我叫David,今年23岁,爱好打篮球。
[2]
msg = "我叫{0},今年{1}岁,我的英文名字依然是{0}。".format("david".capitalize(),23) print(msg) 执行结果: 我叫David,今年23岁,我的英文名字依然是David。
[3]
msg = "我叫{name},今年{age}岁,爱好{hobbie}。".format(name="david".capitalize() ,hobbie="打游戏",age=23) print(msg) 执行结果: 我叫David,今年23岁,爱好打游戏。
(3) count 计算某些元素出现的个数,可切片
msg = "agdsaga" print(msg.count("a",1,))
执行结果:
2
&5.for循环结构
for 变量 in 可迭代对象:
循环体
例题:打印字符串每一个字符
方法一:while
s = "afasdffdsag" i = 0 while i < len(s): print(s[i]) i += 1
方法二:
s = "afasdffdsag" for item in s: print(item)

浙公网安备 33010602011771号