5-条件、循环及其他语句

print()的其他参数

>>> print("I", "wish", "to", "register", "a", "complaint", sep="_",end="")
#end参数替换默认的换行符
I_wish_to_register_a_complaint

赋值魔法

序列解包

将一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中。

>>> values = 1, 2, 3
>>> values
(1, 2, 3)
>>> x, y, z = values
>>> x 1
>>> x, y, z = 1, 2, 3 # 这其实就是运用了序列解包

可使用星号运算符`(*)来收集多余的值

>>> a, b, *rest = [1, 2, 3, 4]
>>> rest
[3, 4]

链式赋值

x = y = somefunction()
#上述代码与下面的代码等价:
y = somefunction()
x = y
#请注意,这两条语句可能与下面的语句不等价:
x = somefunction()
y = somefunction()

增强赋值

增强赋值也可用于其他数据类型(只要使用的双目运算符可用于这些数据类型)。

>>> fnord = 'foo'
>>> fnord += 'bar'
>>> fnord *= 2
>>> fnord
'foobarfoobar'

条件和条件语句

虽然[]和""都为假(即bool([]) == bool("") == False),但它们并不相等(即[] != "")。对其他各种为假的对象来说,情况亦如此(一个更显而易见的例子是() != False

条件表达式——C语言中三目运算符的Python版本:

status = "friend" if name.endswith("Gumby") else "stranger"

is运算符:

x is y代表 x和y是同一个对象

>>> x = y = [1, 2, 3]
>>> z = [1, 2, 3]
>>> x == y
True
>>> x == z
True
>>> x is z
False

字符串和序列的比较:

要获悉字母的顺序值,可使用函数ordchr与之作用相反。

链式比较 1 <= number <= 10

短路逻辑

断言

如果知道必须满足特定条件,程序才能正确地运行,可在程序中添加assert语句充当检查点,这很有帮助。还可在条件后面添加一个字符串,对断言做出说明。

>>> age = -1
>>> assert 0 < age < 100, 'The age must be realistic'
Traceback (most recent call last):

循环

迭代字典

d.items以元组的方式返回键-

for key, value in d.items():
  print(key, 'corresponds to', value)

一些迭代工具

  1. 并行迭代

函数zip,它将两个序列“缝合”起来,并返回一个由元组组成的序列。返回值是一个适合迭代的对象,要查看其内容,可使用list将其转换为列表。

当序列的长度不同时,函数zip将在最短的序列用完后停止“缝合”。

  1. 迭代时获取索引

函数enumerate。这个函数让你能够迭代索引值对,其中的索引是自动提供的。

  1. 反向迭代和排序后再迭代

    函数reversedsorted, 可用于任何序列或可迭代的对象,且不就地修改对象,而是返回反转和排序后的版本。

    要按字母表排序,可先转换为小写。为此,可将sort或sorted的key参数设置为str.lower。例如,sorted("aBc", key=str.lower)返回['a', 'B', 'c']

跳出循环

while True/break成例

word = input('Please enter a word: ')
while word:
  print('The word was ', word)
  word = input('Please enter a word: ')

#改进
while True:
  word = input('Please enter a word: ')
  if not word: break
  print('The word was ', word)

循环中的else子句

else子句,它仅在没有调用break for:...else:平行

简单推倒

从其他列表创建列表的方式

>>> [x*x for x in range(10) if x % 3 == 0]
[0, 9, 36, 81]

>>> [(x, y) for x in range(3) for y in range(3)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

圆括号代替方括号并不能实现元组推导,而是将创建生成器,

然而,可使用花括号来执行字典推导。

>>> squares = {i:"{} squared is {}".format(i, i**2) for i in range(10)}
>>> squares[8]
'8 squared is 64'

三人行

  • pass

    在你编写代码时,可将其用作占位符

    也可不使用注释和pass语句,而是插入一个字符串。这种做法尤其适用于未完成的函数 和 类,因为这种字符串将充当文档字符串

  • del

    对于你不再使用的对象,Python通常会将其删除, 这通常被称为垃圾收集。

    使用del语句。不仅会删除到对象的引用,还会删除名称本身。

    >>> x = ["Hello", "world"]
    >>> y = x
    >>> y[1] = "Python"
    >>> x
    ['Hello', 'Python']
    #你可能认为通过删除x,也将删除y,但情况并非如此。
    >>> del x
    >>> y
     ['Hello', 'Python']
    

    x和y指向同一个列表,但删除x对y没有任何影响,因为你只删除名称x,没有删除列表本身(值)。事实上,在Python中,根本就没有办法删除值,而且你也不需要这样做,因为对于你不再使用的值,Python解释器会立即将其删除。

  • 使用execeval执行字符串及计算其结果

    1. exec

      函数exec将字符串作为代码执行。(exec什么都不返回,因为它本身是条语句)。

      >>> exec("print('Hello, world!')")
      Hello, world!
      

      在大多数情况下,还应向它传递一个命名空间——用于放置变量的地方;否则代码将污染你的命名空间,即修改你的变量。

      第二个参数——字典,用作代码字符串的命名空间

      >>> from math import sqrt
      >>> scope = {}
      >>> exec('sqrt = 1', scope)
      >>> sqrt(4)
      2.0
      >>> scope['sqrt']
      1
      
    2. eval

      eval计算用字符串表示的Python表达式的值,并返回结果

  • xrange([start,] stop[, step]) 创建一个用于迭代的xrange对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值