精华内容
下载资源
问答
  • for循环Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。我们通过一个例子来看一下for循环的具体使用,我们通过range()函数创建一个整数列表,然后将列表中的元素通过for循环打印出来。# for i in...

    我们在写代码时经常会用到循环,python中有for循环和while循环,我们来详细的了解一下这两种循环。

    for循环

    Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

    4a39b1bae80148c91dde358a23c3ed0c.png

    我们通过一个例子来看一下for循环的具体使用,我们通过range()函数创建一个整数列表,然后将列表中的元素通过for循环打印出来。

    # for i in range(5)开始迭代的时候,生成一个数值0,第二次迭代再生成数值1,第三次迭代再生成数值2,
    
    for i in range(5):
        print(i)
    
    # 输出:
    0
    1
    2
    3
    4

    上面是使用了range()函数,我们试试自己定义一个列表来通过for循环打印:

    list1 = ['a', 'b', 'c']
    for i in list1:
        print(l)
    
    # 输出:
    a
    b
    c

    仔细看上面两个例子,我们发现,循环每次迭代时,for会从序列中取一个元素赋值给控制变量i(可自己定义),下一轮迭代又取下一个元素赋值给i。

    for循环使用 else 语句
    除了使用单独的for语句,还可以使用for ... else语句,else中的语句会在循环正常执行完的情况下执行。

    list1 = ['a', 'b', 'c']
    for i in list1:
        print(i)
    else:
        print("循环正常执行完毕")
    # 输出:
    a
    b
    c
    循环正常执行完毕

    上面我们说到循环正常执行完毕的情况,那肯定是还有循环不正常执行完毕的情况。什么情况就算不正常执行完毕的退出呢?像通过break、continue语句退出循环的就不算正常执行完毕。

    • break语句:退出整个循环,如果嵌套了循环,则退出break所在的那层循环。
    • continue语句:跳过当前循环的剩余语句,然后继续进行下一轮循环。
    • pass语句:不做任何事情,一般用做占位语句。

    for迭代字典
    for迭代字典时,可以分为不同的几种方式:

    • 通过keys()迭代字典的key
    dict1 = {'name': 'Tom', 'age': 11, 'sex': 'man'}
    
    for i in dict1.keys():
        print(i)
    
    # 输出:
    name
    age
    sex
    • 通过values()迭代字典的value
    for i in dict1.values():
        print(i)
    
    # 输出:
    Tom
    11
    man
    • 通过items()同时迭代key和value
    for k, v in dict1.items():
        print(k, v)
    
    # 输出:
    name Tom
    age 11
    sex man

    range() 函数的介绍

    python range() 函数可创建一个整数列表,一般用在 for 循环中

    语法range(start, stop[, step])
    • start:计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
    • stop:计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

    while循环

    while循环和for循环都能循环做一件重复的事情。不同的地方在于for循环是在序列穷尽时停止,而while循环是在条件不成立时停止。
    while循环的执行语句可以是单个语句或语句块,判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。

    • 真值表

    5ebc186806b5290778696251689d9603.png

    我们通过一个实例来看一下while循环的使用:

    a = 3
    while a >= 1:
        print(a)
        a -= 1
    
    # 输出:
    3
    2
    1

    循环条件为a>=1,所以当这个条件成立时就会继续循环,打印a。当a<1时就会停止循环。
    当然,如果我们想要中途终止循环也可以使用breakcontinue语句。

    while循环使用else
    while循环和for循环一样,也可以使用else语句,我们一起来看一下:

    a = 3
    while a >= 1:
        print(a)
        a -= 1
    else:
        print('循环结束 !')
    
    # 输出:
    3
    2
    1
    循环结束 !

    无限循环
    如果你想要循环永远执行,可以让条件让真一直成立,比如说:

    a = 1
    while a == 1:
        print(a)
    else:
        print('循环结束 !')
    
    # 会一直循环打印1

    break跳出循环

    a = 0
    while a < 10:
        print(a)
        a = a + 1
        if a == 3:
            print("break跳出循环")
            break
    else:
        print('循环结束 !')
    
    # 输出:
    0
    1
    2
    break跳出循环

    continue进去下一轮循环

    for i in range(1, 11):
        if i % 2:
           continue   
        print(i)
    
    # 输出
    2
    4
    6
    8
    10

    上面代码中使用了continue语句,if 条件语句的意思是如果i%2为真(不等于0)就进入下一轮循环。如果i%2为假(等于0)时会执行print(i)语句,打印i 。

    展开全文
  • 后来有人告诉我,它必须与我的课程,网络管理有关,所以我想我的脚本末尾添加一个密码生成器(用于网络安全)我把所有的代码都写出来了,但是我有一个问题,就是它不能我打印出来的列表中使用一个随机素数。...

    我正在做一个大学项目,从打印两个给定输入之间的所有质数开始。后来有人告诉我,它必须与我的课程,网络管理有关,所以我想在我的脚本末尾添加一个密码生成器(用于网络安全)

    我把所有的代码都写出来了,但是我有一个问题,就是它不能在我打印出来的列表中使用一个随机素数。它只使用最后一个打印出来的数字,我明白为什么,但是不管怎样,我能使它使用一个随机素数,还是我必须把这些数字存储在某个地方?在#A program to count the prime numbers from a given start to a given end

    #importing math function

    import math

    import os, random, string

    #Input the number to start counting from

    Starting_number = input("Enter the starting number: ")

    #Input the number to end the count on.

    Ending_number = input("Enter the number you want to count up to: ")

    #if Starting_number is less than 0 it will print out a suitable message.

    if Starting_number < 0:

    print 'Invalid entry, please enter a positiv number. \nWill count from ',Starting_number, 'to 0 and begin prime number count to',Ending_number, '.'

    #If Ending_number is less than or equals to 0 then it will print out a suitable message.

    if Ending_number <= 0:

    print 'Invalid entry on last input \nPlease enter two positive numbers for the count to work.'

    #Starting loop as long as the current count is between Starting_number and Ending_number

    for num in range(Starting_number, Ending_number):

    #

    if all(num%i !=0 for i in range(2,num)):

    print num

    if num >= 1 and num <= 100:

    length = 4

    chars = string.ascii_letters + string.digits + '!@#$%^&*()'

    random.seed = (os.urandom(1024))

    print ''.join(random.choice(chars) for i in range(length))

    if num >= 101 and num <= 200:

    length = (Ending_number / Starting_number) * 5 + 11

    if length >= num:

    length = num / 100

    chars = string.ascii_letters + string.digits + '!@#$%^&*()'

    random.seed = (os.urandom(1024))

    print ''.join(random.choice(chars) for i in range(length))

    展开全文
  • Python生成器(

    2018-08-02 11:05:01
    Python的生成器是其有魅力的地方之一,它的好处是不用一开始就生成一大堆的数据,而是需要的时候才计算出数据,我们首先先来看一下怎样创建一个生成器 创建生成器很简单,我们来看第一种 x = (i for i in range...

    Python的生成器是其有魅力的地方之一,它的好处是不用一开始就生成一大堆的数据,而是在需要的时候才计算出数据,我们首先先来看一下怎样创建一个生成器

    创建生成器很简单,我们来看第一种

    x = (i for i in range(11))

    看一下是不是很简单,看起来是不是很熟悉,怎么像是列表生成式,是的,但是需要把最外面的中括号【】换成小括号()就可以了,而且这个时候,如果我们在来打印x,在控制台里会输出这么一句话

    <generator object <genexpr> at 0x0000000002801A40>

    大家看到generator这个词了吗,此时x就变成了生成器,那怎么看生成器里的数据呢,很简单直接用for遍历即可

    x = (i for i in range(11))
    for j in x:
        print(j)

    既然是生成器那它就有自己独特的访问方式,那就是next()函数,而列表是不能的

    x = (i for i in range(11))
    print(next(x))
    print(next(x))

    大家发现没,通过next()每次生成一个数据,这样就不会想列表一样一下子列出整个数列在内存中

    展开全文
  • 如果一个对象可迭代意味着可以通过for循环去操作处理它,那么在python怎样判断一个对象是否可直接迭代?如何生成或将一个对象转化为可迭代的对象呢? 1. 判断对象是否是迭代器(iterator) # 列表list对象 In [9]: ...

    如果一个对象可迭代意味着可以通过for循环去操作处理它,那么在python中怎样判断一个对象是否可直接迭代?如何生成或将一个对象转化为可迭代的对象呢?

    1. 判断对象是否是迭代器(iterator)

    # 列表list对象
    In [9]: isinstance([1,2,3],Iterable)                                            
    Out[9]: True
    
    # 集合set对象
    In [12]: isinstance((1,2,3),Iterable)                                           
    Out[12]: True
    
    # 字符串string对象
    In [13]: isinstance('hello word!',Iterable)                                     
    Out[13]: True
    
    # 字典dict对象
    In [15]: isinstance({'city_no':10001,'city_name':'上海市'},Iterable)            
    Out[15]: True
    
    # 元组tuple对象
    In [16]: isinstance(((1001,'上海市'),(1003,'深圳市')),Iterable)                 
    Out[16]: True
    
    # pandas.core.series.Series对象
    In [17]: lost_custs = pd.read_excel('./data_20200510.xlsx')
    isinstance(lost_custs['vin'],Iterable)
    In [18]: True
    

    如果报错,需要先从collections包中引入Iterable

    In [3]: from collections import Iterable                                        
    <ipython-input-3-c0513a1e6784>:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working
      from collections import Iterable
    

    2.将一个对象转化为可迭代(iterable)

    • 如果一个对象已经是一个可迭代的对象,可以直接在for循环中操作它的每一个元素;
    • 相反,如果一个对象是不可迭代的,直接使用for循环去操作它,就会收到一个报错,提示这个对象是不可迭代的。
    In [20]: for t in ((1001,'上海市'),(1003,'深圳市')): 
        ...:     print(t) 
        ...:                                                                        
    (1001, '上海市')
    (1003, '深圳市')
    

    这个元组对象本身就是可迭代的,所以可以直接用for循环操作处理它的每一个组成元素。

    如果一个对象不可直接迭代,又需要在for循环中操作它,那么尝试先将其转化为可迭代的对象。比如:

    v_list = list(lost_custs['vin'])
    

    欢迎👏👏👏
    关注微信公众号:数据分析师之家

    在这里插入图片描述

    展开全文
  • 生成器是不会把结果保存在一个系列中,而是保存生成器的状态,每次进行迭代时返回一个值,知道遇到StopIteration异常结束。创建生成器先看个例子当要生成的list非常大时,会抛出异常,存储报错。那怎样生成这种...
  • 我现在想要实现每执行一次循环就重新调用def方法一次,生成一个新的号码添加到列表内,求高手指点。 ``` import random def Suijihaoma(): a=[133,134,149,153,170,177,180,181,189,130,131,132,145,155,170,...
  • 生成器是不会把结果保存在一个系列中,而是保存生成器的状态,每次进行迭代时返回一个值,知道遇到StopIteration异常结束。创建生成器 先看个例子当要生成的list非常大时,会抛出异常,存储报错。那怎样生成这...
  • 1,引言Python即时网络爬虫项目: 内容提取器的定义》一文我们定义了一个通用的python网络爬虫类,期望通过这个项目节省程序员一半以上的时间。本文将用一个实例讲解怎样使用这个爬虫类。我们将爬集搜客老版论坛...
  • Python深浅拷贝

    2018-07-13 15:21:50
    我们还记得,我们学字符串,学列表的时候:字符串的方法,字符串的功能一般都是在生成一个新的值;而列表一般都是本身进行了一个变化;那这是为什么呢? 内存是什么? 一个格子,一个格子,可以存东西的地址; ...
  • 1,引言Python即时网络爬虫项目: 内容提取器的定义》一文我们定义了一个通用的python网络爬虫类,期望通过这个项目节省程序员一半以上的时间。本文将用一个实例讲解怎样使用这个爬虫类。我们将爬集搜客老版论坛...
  • python中的三器

    2021-04-25 08:41:50
    三器是指装饰器,迭代器,生成器,式是指列表生成式/推导式! ,装饰器 装饰器是三器中最重要的器,它的作用就是:在不修改被装饰函数源代码的基础上,给其加上额外的功能。在python的web框架django等地方会起...
  • 今天我们发布了《全民一起玩Python 提高篇》第十五回“字典也有生成式,却拿空间换时间”,重点介绍了将列表转换为字典的三种方法(dict 、fromkeys 和 字典生成式),并剖析了一个常见的数据分析需求:怎样使用字典...
  • 怎样使用python完成一段小小的数码管的绘制非常高兴可以第一次csdn上面完成我的第一个博客数码管的绘制所要引用的函数和使用方法合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段...
  • 前言:本文会以windows和Linux两平台之下进行说明,python的模块导入的搜索顺序是怎样的。 、导入模块的搜索顺序: (1)首先导入内建模块。首先判断这module是不是...sys.path在python脚本执行时动态生成...
  • Python中的迭代器

    2021-04-08 19:10:47
    Python中的迭代器前言一、什么是迭代器?二、 通过迭代器进行迭代三、for循环是怎样运行的?四、如何创建自己的迭代器?...迭代器在Python中是一个可以迭代的对象,可以返回数据等。通常来说,迭代器对象
  •  3.6 第一个python程序   3.7 相关模块和开发工具   3.8 练习   第4章 python对象   4.1 python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 none--...
  • cx Oracle中,对返回多个结果的查询使用.fetchall()命令将每一行放入一个元组中,然后生成一个元组列表(每个返回行1个)。获取查询结果后,其格式如下:[('R100',), ('R200',)]现在我想另一个查询中使用这些结果...
  • 用模块管理函数 - 模块的概念 / 用自定义模块管理函数 / 命名冲突的时候会怎样(同一个模块和不同的模块) Day07 - 字符串和常用数据结构 字符串的使用 - 计算长度 / 下标运算 / 切片 / 常用方法 列表基本用法 -...
  • 深入理解Python中文版高清PDF

    热门讨论 2012-09-04 19:37:04
     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2...
  • Python核心编程第二版

    热门讨论 2009-07-30 17:07:20
     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...
  • Python核心编程第二版(中文)

    热门讨论 2015-04-23 16:40:13
    目录 ······ 第1部分 Python核心 ...15.3.5 search()在一个字符串中查找一个模式(搜索与匹配的比较) 15.3.6 匹配多个字符串(|) 15.3.7 匹配任意单个字符(.) 15.3.8 创建字符集合...
  • 我有一个程序,从一系列的中位数中创建一个直方图,这些中位数是特定参数(上限,样本大小)内随机生成的。我怎样才能使创建的直方图出现tkinter GUI中,就刻度的正上方?我到处找了,还是想不出来。提前谢谢!...
  • Python核心编程(中文第二版)

    热门讨论 2009-10-02 12:08:14
     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...
  • Python核心编程第二版(ok)

    热门讨论 2009-05-21 08:23:44
     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Pythonc对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...
  •  3.6 第一个python程序   3.7 相关模块和开发工具   3.8 练习   第4章 python对象   4.1 python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 none--...
  • 生成一个名为test.php3的文件,含有以下内容: (); ?> 然后你的浏览器中打开此文件。看看这个页面你就知道你的PHP安装使用的选项了。 2.3 语法 就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

怎样在python生成一个列表

python 订阅