初识python(3)
引言
昨天讲了python流程控制中的部分内容,今天来讲讲剩下的流程控制和基本数据类型的内置方法。小伙伴们让我们开始吧。
循环
while与else连用
while和else连用必须是没有break主动打断循环即while循环是正常运行结束的,else的子代码才可以运行。continue不会影响while和else的连用。
'''
while 条件:
条件成立执行循环体代码
else:
循环体代码正常结束,执行else子代码
'''
count = 1 # 计数器
while count < 10:
print(count, end='')
count += 1
else:
print('善终')
'''
运行结果为
123456789善终
'''
死循环
一些情况下的死循环会极度影响计算机的性能,严重的会造成计算机硬件的损坏。死循环就是一个循环没有结束循环条件而产生的。
# 死循环是永远都无法结束的循环,一直占用cpu进行工作。下面这种就是死循环
while True:
print('死循环')

while嵌套
while嵌套其实和if嵌套区别不大,只是大循环中套小循环,在这里要记得结束循环用的break是结束离它最近的那个while循环。如果要同时结束大小循环除了根据缩进安排相应的break以外,还可以使用全局标志位了完成。
# 使用break结束两个循环
while True:
username = input('username>>>:')
password = input('password>>>:')
if username == 'jason' and password == '123':
print('登录成功')
while flag:
cmd = input('请输入您的指令>>>:')
if cmd == 'q':
print('下次光临')
break
print('正在执行您的指令:%s' % cmd)
break
else:
print("用户名或密码错误")
# 使用全局标志符同时结束两个循环
flag = True # 全局标志符
while flag:
username = input('username>>>:')
password = input('password>>>:')
if username == 'jason' and password == '123':
print('登录成功')
while flag:
cmd = input('请输入您的指令>>>:')
if cmd == 'q':
print('下次光临')
flag = False
print('正在执行您的指令:%s' % cmd)
else:
print("用户名或密码错误")
for循环
虽然while循环可以做所有for循环可以做的事,但是由于for循环语法简单,因此for循环使用频率很高。对于一些循环取值来说,优先考虑for循环而不是while循环。for循环中的break、continue还有else,以及for循环嵌套和while中是一样的。
# for循环语法结构
for 变量名 in for循环对象:
for循环的循环体代码
'''
每次执行循环都会把for循环对象中的一个元素赋值给变量名。
对于for循环中变量名的命名方式也最好做到见名知意,如果实在想不好该取什么变量名,可以用i、j、v、k、item、num等。
for循环可以遍历数据集和字符串,把里面的元素一个一个打印出来,但是注意了for的循环对象是字典时,只能打印键,字典的值只能通过键获取。而且由于集合和字典时无序的,因此打印出来的顺序也不是你能看到的那样。
'''

range函数
python中的for语句和别的语言的for语句不太一样,只有for循环对象没有布尔表达式。因此只能用range来帮助代替,range函数是取头不取尾的,如果只写一个参数,那么就是默认从0开始的。range函数在python2和python3中是不一样的,python2中的range()返回的是一个列表,很占用内存空间。python3中range函数返回的是一个迭代器,虽然占用空间很小,但可以取出很多值。range还在爬虫领域得到了广泛的使用,爬虫主要是使用编程代码去爬取你想要的数据。你可以去一些有页码的网站看看url(统一资源定位符),它的页码之间基本上都是有规律,因此可以用range来解决。
range(4) # python3中range(0, 4) --> python2中[0, 1, 2, 3]
range(1, 5) # python3中range(1, 5) --> python2中[1, 2, 3, 4]
range(1, 20, 5) # python3中range(1, 20, 5) --> python2中[1 ,6 ,11 ,16]
# range中第三个参数其实是步长也是所谓的差分。

基本数据类型的内置函数
使用编程软件看数据类型的内置方法
借助编程软件看内置方法,先写好数据类型然后在数据类型后面写一个句点符就可以了。
整型和浮点型
整型和浮点型主要是用来计算数据的,因此它们的内置方法用的很少。主要还是类型转换用的多,int的类型转换只能转换纯数字的字符串。浮点型能转换的比int多一个就是句点符和纯数字的结合。
a = int('41355') # 41355 int
b = float('41355') # 41355.0 float
c = float('413.55') # 413.55 float
字符串
字符串中的内置方法很多,这里只讲一些用处大的。更多的内容可以去菜鸟教程等学习网站查看。
# 字符的类型转换可以转换所有的数据类型
print(type(str(123))) # str
print(type(str(123.1))) # str
print(type(str((1, 2, 3, 4, 5)))) # str
print(type(str({1, 2, 3, 4, 5}))) # str
print(type(str({'name': 'king'}))) # str
print(type(str(True))) # str
print(type(str([1, 2, 3, 4]))) # str
# 索引取值
name = 'kingtomjasonkiven'
print(name[10]) # o
# 切片
print(name[2:10]) # ngtomjas 取头不取尾,切片是依靠索引值的
# 切片中的步长
print(name[2:10:2]) # ntma 步长可以理解为差分,相邻数字之间的差值
# 切片的扩展
print(name[-1]) # n 反着切,取最后一个字符,索引默认方向是从左向右
print(name[-1:-5:-1]) # nevi 可以用第三个参数来改变方向。
# strip移除头尾的指定字符
print(' daasd '.strip()) # daasd strip默认是去除头尾的空格,也可以自己指定
print('**daad**'.strip()) # daad
# len字符串字符长度
print(len('asdad')) # 4
# in成员运算
print('asd' in 'gagdasdasdda') # True 成员运算用于判断一段字符是否在另一段字符串中。
# split切割
print('ads|das|dsaads'.split('|')) # ['ads', 'das', 'dsaads']
'''
切割就是按照指定的字符来切割字符串,结果是列表形式的。
'''
print('ads|das|dsaads'.split('|', 1)) # ['ads', 'das|dsaads'] 只切割一次
print('ads|das|dsaads'.rsplit('|', maxsplit=1)) # 可以直接写1也可以,rsplit是从右边开始切割
总结
对于内置方法来说,我们主要就是多练和多记忆,内置函数太多,但是用的多了也就记住了,加油吧,朋友们。
