当while没有被关键字break主动结束的情况下
正常结束循环体代码之后会执行else的子代码
while 条件:
循环体代码
else:
循环体代码正常运行结束 则会执行该子代码块
count = 1 while count < 10: print(count) count += 1 #打印0到9,正常 else: print('while循环寿终正寝了!!!') #循环体正常结束,可打印 count = 1 while count < 10: if count == 4: break #被break结束,非正常 print(count) count += 1 else: print('while循环寿终正寝了!!!') #不打印
死循环与while的嵌套
# 死循环有些时候会极度的影响电脑的性能 甚至会造成硬件的损坏(会一直占用CPU工作)
count = 10 while True: count *= 1 #一直让计算机cpu工作 while True username =input('username>>>:') print(username) #这个不会让cpu一直处于工作,因为需要人手动输入
while的嵌套
flag = True #后面改这个变量名所指带的值为False可以直接结束循环(方便) 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) #%s是占位符号 else: print("用户名或密码错误") #必须先进入大循环,登录成功后,才能进入小循环,小循环全部结束,才可以再次进入大循环
for循环
for循环可以做到的事情while循环都可以做到!!!
但是for循环语法更加简单 使用频率更高
一般情况下涉及到循环取值的时候 都会考虑使用for循环而不是while循环
语法结构: for 变量名 in for的循环对象 #循环对象可以是字符串、列表、字典、元祖、集合 (每次执行都会将循环对象中的一个元素赋值给变量名)
针对for循环语法结构中的变量名 也应该做到见名知意
如果真的没有合适的名字可以使用常用的变量名:i、j、k、v、num、item。。。
name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar'] # 使用while循环依次打印出列表中所有的元素 count = 0 while count <5: print(name_list[count]) count +=1 #使用for循环 (依次打印出列表中所有的元素) for name in name_list: print(name)
for循环补充
# for+break break结束本层for循环 # for+continue continue结束本次for循环 直接开始下一次 # for+else for循环正常结束之后运行else子代码 """与while一致""" # for循环的嵌套
1.循环字符串,依次取出每一个字符
for i in 'hello world'
print(i) #h e l l o w o r l d
2.循环字典,仅仅获取字典k值,v值无法直接获取
userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'}
for i in userinfo_dict:
print(i) # username age gender
3.循环元祖
for i in (11, 22, 33, 44, 55):
# print(i) #可能是 11 22 33 44 55
4.集合
for i in {11, 22, 33, 44, 55, 66}:
print(i) #11 55 33 22 44
# 循环集合:字典与集合内部的元素都是无序的
(但是由于字典常用,特地做了优化,改成有序的)
range关键字
循环打印0-100 #while循环 count = 0 while count < 101: print(count) count += 1 for循环(如果直接从1写到100的集合太麻烦了,就多了一个range范围) for i in range(101): #顾头不顾尾,默认从0开始 print(i)
range的使用方法
1.括号内只写一个数字 ,顾头不顾尾
for i in range(10):
print(i) #打印0-9
2.括号内写两个数字,定义起始位置,顾头不顾尾
for i in range(1, 10):
print(i) #打印1-9
3.括号内写三个数字,第三个数字表示等差数列的差值,默认情况下是1
for i in range(1, 10, 2):
print(i) #打印1 3 5 7 9
补充:
range方法在python2和python3中有所区分
在python2中range是直接产生一个列表 元素很多的情况下比较占用空间
在python2中有一个xrange 其实就是python3里面的range
在python3中range相当于哆啦A梦的口袋 不占空间但是可以取出很多数据
在python3中就只有一个range了
爬虫(通过编写代码去网络上爬取我们需要的数据)
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= 电影网站第四页
可以自己找一个具有多页数据的网址 研究url是否有规律
有一些网址分页是用的url
有一个使用的是内部js脚本(暂且忽略)
url_demo = 'https://movie.douban.com/top250?start=%s&filter='#用%s占位符来占位 for i in range(0, 250, 25): #总共十页 250/25 real_url = url_demo % i #把%s的值换成i # 通过代码请求页面获取页面数据 # 然后根据业务需求筛选出特定的内容
数据类型的内置方法(可以借助于编程软件的自动提示 采用句点符快速查看)
查看数据类型方法: type(需要判断的数据)
int整型
1.类型转换 int只能转换纯数字的字符串 res = int('123')
2.进制数转换
#将十进制转换成其他进制 print(bin(100)) #0b1100100 二进制(ob开头) print(oct(100)) # 0o144 八进制(0o开头) print(hex(100)) # 0x64 十六机制(0x开头) #将其他进制转换成十进制 print(int('ob1100100, 2')) print(int('0o144', 8)) print(int('0x64', 16))
float浮点型
res = float('11.11') print(res, type(res)) # 11.11 res = float('11') print(res, type(res)) # 11.0 float('abc') #不可以转换
str字符串内置方法(str可以转换所有数据类型)
s1 = 'hello world' 1.索引取值 print(s1[0]) # h 2.切片操作 print(s1[2:4]) # ll 顾头不顾尾 取2.3位的数据 3.步长(和range类似) print(s1[2:9:1]) #第三个数字是步长,默认是1 llo worl print(s1[2:9:2]) #间隔一个取一个,空格算 l o w r 4.索引取切片扩展 print(s1[-1]) #获取最后一个字符 d print(s1[-1:-5:-1]) #只能从小到大,这里-1到-5,是从大到小,默认步长要改变 d l r o 顾头不顾尾 print(s1[-5:-1]) #worl 5.成员运算 print('ll' in s1) #True 6.移除字符串首位指定字符(使用频率高) strip(去除) name = ' jason ' #经常我们在输入用户名时候就算多了空格也是对的 print(len(name)) #9 因为空格也算字符串 res = name.strip() #默认移除字符串首尾的空格 print(res, len(res)) #jason 5 name1 = '$$$$jason$$$$' print(name1.strip('$')) #jason #但是如果是在jason中间有$,去除不了,只能去除两边的 eg ja$$son username = input('username>>>:').strip() if username == 'jason': print('我想去干饭了') 7.按照指定字符切割字符串 split(分割) data = 'jason|123|DBJ' print(data.split('|')) #['jason', '123', 'DBJ'] 变成了列表 name, pwd, hobby = data.split('|') #相当于把右边变成表格,然再赋值给左边 (解压赋值) print(data.split('|', maxsplit = 1)) #['jason', '123|DBJ'] print(data.rsplit('|', maxsplit=1)) # ['jason|123', 'DBJ'] """方法切割完字符串之后是一个列表"""
标签:count,内置,jason,range,while,循环,print,方法 From: https://www.cnblogs.com/Milk1/p/17479862.html