初识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善终
'''
graph TD A(开始) --> B{count < 10} B --> |True| C[print] B --> |False| D[循环正常结束] C --> E[count += 1] E --> B D --> F[善终] F --> G(结束)

死循环

   一些情况下的死循环会极度影响计算机的性能,严重的会造成计算机硬件的损坏。死循环就是一个循环没有结束循环条件而产生的。

# 死循环是永远都无法结束的循环,一直占用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是从右边开始切割

总结

   对于内置方法来说,我们主要就是多练和多记忆,内置函数太多,但是用的多了也就记住了,加油吧,朋友们。

posted @ 2022-03-08 17:29  小金同学要加油  阅读(92)  评论(0)    收藏  举报