循环与基本数据类型的内置方法

1. 循环

  1. while + else循环

    当while循环条件不满足,并且没有break主动退出的情况下,就会执行else中的子代码块

    语法结构:

    while + 条件:

      循环体代码

    else:

      循环体代码条件不满足,并且不被主动退出时,执行的子代码块

while与else 代码示例
    count = 1
    while count < 3:
        print(count)
        count += 1
    else:
        print('while循环已结束')

 

  2. while的嵌套

    语法结构:

      while + 条件1:

        循环体代码

        while + 条件2:

          循环体代码

 

 

while嵌套示例

data = ['jason|123', 'tony|123', 'tank|123']
count = 1
flag = True
while flag:
    input_username = input('请输入用户名: ').strip()
    input_password = input('请输入密码: ').strip()
    for name_pwd in data:
        username, pwd = name_pwd.split('|')
        if username == input_username and pwd == input_password:
            while flag:
                input_print = input('请输入执行的命令: ').strip()
                if input_print == 'exit':
                    flag = False
                else:
                    print(input_print)
    if flag:
        print('账号密码错误,还有%s次机会' % (3 - count))
        count += 1
        if count == 4:
            is_again = input('是否继续:y/n')
            if is_again == 'y':
                count = 1
            else:
                break

 

  3. 死循环

    死循环就是永远无法结束的循环并且一直占用CPU工作

死循环示例

count = 1
while True:
    count += 1
    count *= 100

  

  4. range关键字

    range其实一个迭代器] 用于产生一个数据集合 但是节省空间

  

# 用法1  括号内只写一个数字  默认从0开始  顾头不顾尾
for i in range(10):
    print(i)

>>>0
>>>1
>>>2
>>>3
>>>4
>>>5
>>>6
>>>7
>>>8
>>>9

# 用法2  括号内写两个数字  自定义起始位置 顾头不顾尾
for i in range(1, 10):
     print(i)

>>>1
>>>2
>>>3
>>>4
>>>5
>>>6
>>>7
>>>8
>>>9

# 用法3  括号内写三个数字  第三个数字表示的是等差数列的差值  默认情况下是1
for i in range(1, 10, 2):
    print(i)

>>>1
>>>3
>>>5
>>>7
>>>9

    

 

  5. for循环

    while循环可以做到,那么for循环可以做到的事情,但是for循环语法更加简单   ps:一般情况下涉及到循环取值的时候 都会考虑使用for循环而不是while循环

    语法结构:

      for 变量名 in 循环对象: ps:循环对象可以为字符串,元组,列表,集合,字典

        for循环的循环体代码

      注: 每次执行循环都会将变量名指向新的内存空间,并且会将循环对象中的一个元素赋值给变量名

for循环示例

# 如果for循环,循环对象是字符串,那么会将字符串中每个字符,一个个取出
for i in 'lisi':
    print(i)
>>>'l'
>>>'i'
>>>'s'
>>>'i'

# 如果for循环的循环对象是列表,那么会将列表中每个元素逐一取出
index_list = [1, 2, 3, 4]
for index in index_list:
    print(index)
>>>1
>>>2
>>>3
>>>4

# 如果for循环的循环对象是字典,那么会将字典的key值逐一取出,但是value无法直接获取
userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'}
for i in userinfo_dict:
    print(i)
>>>username
>>>age
>>>gender

# 如果for循环的循环对象是元组,那么会将元组中每个元素逐一取出
for i in (1, 2, 3, 4, 5):
    print(i)
>>>1
>>>2
>>>3
>>>4
>>>5

# 如果for循环的循环对象是集合,那么会将集合中每个元素逐一取出
for i in {11, 22, 33, 44, 55}:
    print(i)
>>>11
>>>22
>>>33
>>>44
>>>55

# 循环字典与集合内部的元素都是无序的,但是使用pycharm,那么会发现字典中循环出来是按顺序的,因为字典比较热门,所以pycharm对字典输出进行了优化

 

# for+break
break结束本层for循环 与while + break用法一致
示例

for i in [1, 2, 3, 4, 5]:
    if i == 4:
        break
    print(i)

# for+continue
continue结束本次for循环 直接开始下一次 与while + continue用法一致
示例

for i in ['tony', 'tank', 'egon', 'alex']:
    if i == egon:
        continue
    print(i)

# for+else
for循环正常结束之后运行else子代码 与while + else用法一致 
示例

for i in [1, 2, 3, 4, 5]:
    print(i)
else:
    print('循环结束')

 

  5.数据类型的内置方法

    5.1 int整型的内置方法

1.类型转换
    能将字符串转换成int类型(字符串必须是纯数字的字符串)
示例:
print(int('11'))
>>>11
print(int('11.1'))
>>>报错  因为此字符串除了数字还有.号

2.进制数转换
示例:
# 将其他机制转换成十进制 print(int('0b110010', 2)) >>>50 print(int('0o62', 8)) >>>50 print(int('0x32', 16)) >>>50

 

    5.2 float浮点型内置方法

类型转换
print(float('11.11'))
>>>11.11
# float类型的类型转换能转换纯数字与.号的字符串
print(float('11'))
>>>11.0
# 当类型转换的字符串是存数字组成,那么转换后,会在末尾增加.0,代表是浮点型

  

  

    5.3 str字符串内置方法

      

1.类型转换
# 字符串的类型转换是可以转换所有基本数据类型

print(str(11))
>>>'11'
print(str(11.11))
>>>'11.11'
print(str([1, 2, 3, 4]))
>>>'[1, 2, 3, 4]'
print(str({'name': 'jason'}))
>>>"{'name': 'jason'}"
print(str((1, 2, 3, 4)))
>>>'(1, 2, 3, 4)'
print(str({1, 2, 3, 4}))
>>>'{1, 2, 3, 4}'
print(str(True))
>>>'True'


text = 'hello world'
# 1.索引取值
print(text[4])
>>>'o'

# 2.切片操作 # 顾头不顾尾,只能获取头部,但是尾部的索引是获取不到的
print(text[1:4])  
>>>'ell'

# 3.步长 则为规定的数字-1就是间隔数
print(text[1:9:1])  # 第三个参数是步长 默认是1 依次获取
>>>'ello wor'

# print(text[2:9:2])  # 间隔一个取一个
>>>'lowr'

# print(text[2:9:3])  # 间隔两个个取一个
>>>'l r'


# 索引取切片扩展 # 第三个参数还可以控制索引的方向 如果为负数,则是从右往左,默认为从左往右
# print(text[-1]  # 如果第一个与第二个参数为负数,那么就是从左边开始取值
>>>'d'

# print(text[-1:-5:-1]) 
>>>'dlro'

# print(text[-5:-1])
>>>'worl'

# 4.统计字符串中字符的个数
print(len(text)) 
>>>11

# 6.移除字符串首位指定的字符(使用频率较高)
name = '  lisi  '
res = name.strip()  # 默认移除字符串首尾的空格,如果填写了单词,那么就会移除你填写的单词
print(res)
>>>'lisi'

# 7.按照指定的字符切割字符串  # 字符串被切割完之后,形成的是一个列表
data = 'jason|123|DBJ'
print(data.split('|'))
>>>['jason', '123', 'DBJ']

posted @ 2022-03-08 17:15  thrombus  阅读(59)  评论(0)    收藏  举报