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)

 

posted on 2018-04-28 19:20  Y易然R  阅读(107)  评论(0)    收藏  举报

导航