while循环补充、for循环、range关键字、内置方法之整型、内置方法之浮点型、内置方法之字符串

一、while循环补充

(1)、while+continue

  • 使用循环打印出0-9的数字
count = 0
while count < 10:
    print(count)
    count += 1
  • 打印0-10的数字不打印6
count=0
while count < 11:
    if count ==6:
        count+=1
        continue #
    print(count)
    count+=1

continue结束本次循环,并且回到while循环的条件处从新判断

(2)、while+else(了解)

# count=0
# while count < 10:
#     print(count)
#     count+=1
# else:
#     print('哈哈哈哈')

count=0
while count < 10:
    if count ==5:
        count+=1
        continue
    print(count)
    count+=1
else:
    print('哈哈哈哈')

当while循环没有被中断(break)的时候,就会执行

(3)、死循环

'''在程序中,可千万不能出现死循环'''
while True:
    print(100)
'''能用for循环实现的,都不要使用while循环'''

二、for循环

  • for循环也是循环结构的一种,但是和while不同的是,for循环并不会出现死循环,因此我们能够使用for循环实现的功能尽量不使用while

image

# 1. 使用while循环打印以下列表中得数据
name_list = ['kevin', 'tony', 'jack', 'tom']
# i=0
# while i<4:
#     print(name_list[i])
#     i+=1

for name in name_list:
    print(name)
    
"""
	语法格式:
        for 变量 in 可迭代对象:  字符串、列表、字典(暴露的是字典的k)、元组
        	print(name)
"""

for i in 'helloworld':
    print(i)
PS:for后面的变量名命名的时候,如果没有特殊的含义,我们一般使用i,j,k,v,item等等


'''重点'''
d = {'username':'kevin', 'age':18, 'hobby':'music'}
for i in d:
    print(i, d[i])

range关键字

  • range可以简单的理解为是帮我们产生一个内部含有多个数字的数据,但是range方法顾头不顾尾,最后的结尾不取
# 配合for循环使用
第一种玩法:
for i in range(10) # 一个参数, 打印数字列表,从0开始
	print(i)

第二种玩法:
for i in range(4, 18):  # 顾头不顾尾
    print(i)

第三种玩法:
for i in range(2, 20, 3):# 起始数值,结束数值,间隔数值
    print(i)

# 拓展知识:
"""
推断:https://movie.douban.com/top250?start=0&filter=    第一页
	https://movie.douban.com/top250?start=25&filter=    第二页
	https://movie.douban.com/top250?start=50&filter=    第三页
	https://movie.douban.com/top250?start=75&filter=    第四页
	https://movie.douban.com/top250?start=100&filter=   第五页
	...
	
	https://movie.douban.com/top250?start=225&filter=   第十页
"""

url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0,250,25):
    print(url % i)
    
'''小补充:range在不同解释器版本中是有区别的。'''

for+break

for i in range(10):
    if i == 3:
        break
    print(i)

for+continue

for i in range(10):
    if i == 3:
        continue
    print(i)

for+else

for i in range(10):
    if i == 3:
        break
    print(i)
else:
    print('哈哈哈哈')

for循环嵌套

for i in range(1,10):
	for j in range(1,i+1):
		print('%s*%s=%s' %(i,j,i*j),end=' ')
	print()

三、数字类型内置方法

(1)、整型(int)

# 进制转换
print(bin(10))  # 0b1010
print(oct(10))  # 0o12
print(hex(10))  # 0xa

# 0b代表二进制  0o代表八进制  0x代表十六进制

print(int('0b1010', 2))
print(int('0o12', 8))
print(int('0xa', 16))

(2)、浮点型(float)

float方法可以把整型、特殊情况下的字符串变成float类型:

a = 11
b = '11.1'
c = '11.1.1'
print(float(a))
print(float(b))
print(float(c))
# 这里的话运行c的转换的时候会直接报错

image
注意:python对数字的运算其实并不敏感(精确),但是由于背后的大佬较多,我们可以使用模块进行精确计算

四、字符串str内置方法

类型转换(把其他类型转换成自己的类型)
字符串可以转换所有类型的数据值,从结果看就是在两边加上引号
索引取值

information = 'hello python'
print(information[0])

切片操作

# 升级版本:切片取值
information = 'Hello World'
print(information[6:])  # 从6取到结尾
print(information[:6])  # 取到第六个就结束,第六个不取
print(information[:])  # 取所有的值
print(information[-1:])  # 从后往前取,从后往前取的时候
print(information[-5:-1])  # 用负的位置坐标取值,需要小的在前大的在后
print(information[6:10])  # 从第六个开始,取到10,但是取不到10的位置,只能到九
print(information[6:10:2])  # 从第六个开始,取到10,但是取不到10的位置,并且两个字符取一次
print(information[10:6:-1])  # 从第10个开始,取到6,但是取不到6的位置,是从后往前取

统计字符串的长度(个数)
len:计算字符串长度或个数

# 计算长度的len
information = 'hello world'
print(len(information))

strip方法:删除首尾的内容
删除字符串首尾的空格,或是指定的字符。生活中主要使用在账号密码的输入中,可以减少错误

# 删除字符串首尾的空格
# information = '  hello world  '
# print(information.strip())

lstrip和rstrip:删除左侧或右侧字符的strip方法

# 左侧:lstrip
information = '  hello world  '
print(len(information))
print(information.lstrip())
print(len(information.lstrip()))

# 右侧:rstrip
information = '  hello world  '
print(information.rstrip())
print(len(information.rstrip()))

split方法:切块
split:删除指定的字符并从删除的位置把字符串变成列表中的一个个值

# split
information = 'hello world'
print(information.split(' '))
# 这里我们可以看到根据中间的空格把字符串分成了含有两个值的列表,并且空格被删掉了

format方法:格式化输出
format方法拥有和%s相似的功能,但是更为强大,也更方便

format方法有四种表现形式,如下:

表现形式一

插入占位的符号,输入占位符输入的值,不能多不能少

# format玩法1:等价于占位符
# res = 'my name is {} my age is {}'.format('jason', 123)
# print(res)
# format玩法2:索引取值并支持反复使用
# res = 'my name is {0} my age is {1} {0} {0} {1}'.format('jason', 123)
# print(res)
# format玩法3:占位符见名知意
# res = 'my name is {name1} my age is {age1} {name1} {age1} {name1} '.format(name1='jason', age1=123)
    # print(res)
    # format玩法4:推荐使用(******)
    name = input('username>>>:')
    age = input('age>>>:')
    res = f'my name is {name} my age is {age}'
posted @   吴仁耀  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
  1. 1 原来你也在这里 周笔畅
  2. 2 世间美好与你环环相扣 柏松
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
极恶都市 - 夏日入侵企划
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 王星

作曲 : 灰鸿啊/皮皮

编曲 : 夏日入侵企画

制作人 : 邢硕

节奏吉他 : 肯尼

主音吉他 : 张伟楠

贝斯 : 皮皮

鼓 : 海鑫

和声 : 邢硕

音效制作 : 邢硕

录音 : 邢硕/夏国兴

混音 : 于昊

特别鸣谢 : 张伟楠

这城市的车流和这地表的颤抖

像一颗石子落入地心之后泛起的温柔

暗涌

河水流过转角她的楼

被梦魇

轻声呓语唤醒身后的幼兽

失效感官焦灼只剩下

麻木愚钝无从感受

共同支撑全都瓦解

只是我们现在都

已忘记到底是

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去陈旧的还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

眼看这情节开始变旧

所有的城池已失守

最终无法占有

无眠辗转

伴着人间破碎的旧梦

像繁星

退却后只剩下混沌的夜空

炙热

掩盖风声鹤唳的担忧

把所有失落无助反手推入

无尽的白昼

失效感官焦灼只剩下

麻木愚钝无从感受

共同支撑全都瓦解

只是我们现在都已经忘记到底是

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

眼看这情节开始变旧

所有的城池早已失守

惶恐难以接受

缠绵往复不肯放手

最终无法占有

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁 灭 即 拯 救

谁掠夺春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

明知城池已失守

缠绵往复不肯放手

最终无法占有

点击右上角即可分享
微信分享提示