首页 > 其他分享 >while和for、内置方法

while和for、内置方法

时间:2023-06-15 18:55:42浏览次数:24  
标签:count 内置 jason range while 循环 print 方法

  当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

相关文章

  • 一种求前 k 小方案的神奇方法
    一种求前\(k\)小方案的神奇方法同样适用于前k大肯定对于每一个方案\(x\)都会有一个\(val(x)\)表示这种方案的权值。我们定义对于一个集合的\(val\)是\(val(S)=\min\limits_{x\inS}\{val(S)\}\),首先需要找到一个集合\(S\)使得\(val(S)\)是最小的权值,对\(S\)定......
  • Linux系统基础知识与自学方法
     大部分非计算机相关的朋友也经常使用电脑,所以我们频繁接触的是Windows系统。关于这个系统的评价不一,一部分人觉得简洁快捷,一部分人觉得问题(病毒、弹窗)多多,总之对Windows系统系统的评价参差不齐,上限高,下限也低。所以我们可以看出,这个系统在使用过程中每个人的感受都不一样。同时......
  • 数组去重的5种方法
    1·newSet解构letres1=[...newSet(arAr)]2·newSet Array.fromletres2=Array.from(newSet(arAr))3·for循环splice1letfn=(array)=>{2for(leti=0;i<array.length;i++){3for(letj=i+1;j<array.length;j++){......
  • C#线程同步的几种方法
    在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就简单的做一下归纳。一、volatile关键字volatile是最简单的一种同步方法,当然简单是要付出代价的。它只能在变量一级做同步,volatile的含义就是告诉处理器,不要将我放入工作内存,请直接在主存操作我。因此......
  • 常见的关键词选取方法有哪些?
    在做关键词策略的时候,选取关键词是一个很重要的环节。如何选取适合自己网站而且能够带来一定效益的关键词。常见方法如下:1、趋势推测法所谓的趋势推测法就是利用即将到来的事件进行关键词的提前策划与推测。在SEO领域,获得了先机往往能够获得不错的效益。2、长尾词法则根据二八法则,......
  • Python的map()方法如何使用?
    Python的map()方法如何使用?>>>help(map)Helponclassmapinmodulebuiltins:classmap(object)|map(func,*iterables)-->mapobject||Makeaniteratorthatcomputesthefunctionusingargumentsfrom|eachoftheiterables.Stopswhen......
  • 关于使用 z-swiper 3d流的的方法
    使用的是这个组件3D流|zebra-swiper(zebraui.com),是在uniapp中使用,本文章是为了解决一些使用这个组件时的需求来创作的。这个组件的功能是在uniapp上实现3d效果轮播图,效果可以,但是功能上差一些,需要我们自己来弥补。首先是滑动的时候会出现因为惯性效果页面上显示的已经到第4个但......
  • vue填坑之解决部分浏览器不支持pushState方法
    前端使用vue-router做单页面路由并开启history模式时,会碰到一个问题:部分低版本的手机浏览器、部分app以及IE9浏览器由于不支持pushState方法,会导致页面加载不出来。解决这个问题的思路是:当浏览器支持pushState方法时,开启history模式,不支持则开启hash模式对链接做判断,当跳转的......
  • JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)
    关键字:java面试题基本类型intlongbooleanfloatdoublechar作者:臧圩人(zangweiren)基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。它们是我们编程中使用最频繁的类型,因此面试题中也总少不了它们的身影,在这篇文章中我们将从面试中常考的几个方面来回顾一......
  • JS 保留小数 又一方法
    对于X进行保留两位小数的处理,则可以使用Math.round(X*100)/100进行处理。 在JavaScript中,对数值进行四舍五入操作的场景还有以下几种:向上取整:ceil向下取整:floor四舍五入:round固定精度:toFixed固定长度:toPrecision取整:parseInt、位运算 ......