当前位置: 首页 > news >正文

python输出语句print_Python每日3题print(c)会输出什么?

  1. 每日3题是麦叔的面试系列专题之一,每天包括初级,中级,高级难度题目各一道。
  2. 每日3题,100天之后成为大牛!
  3. 如果有不明白的,给麦叔留言。

[Easy] 有这样一段代码,print(c)会输出什么,为什么?

a = 10
b = 20
c = a
a = 15
print(c)

思考30秒再往下翻...

06e88b7a039069fc61f7068358c8386d.png

会输出:10,python对于字符串,数字,传递是相应的值

[Normal] 正则表达式贪婪与非贪婪模式的区别?

思考30秒再往下翻...

842c2a139bcb7e75431ca6b8c9ee6c8b.png

贪婪模式:定义:正则表达式去匹配时,会尽量多的匹配符合条件的内容 标识符:+,?,*,{n},{n,},{n,m} 匹配时,如果遇到上述标识符,代表是贪婪匹配,会尽可能多的去匹配内容

非贪婪模式:定义:正则表达式去匹配时,会尽量少的匹配符合条件的内容 也就是说,一旦发现匹配符合要求,立马就匹配成功,而不会继续匹配下去(除非有g,开启下一组匹配) 标识符:+?,??,*?,{n}?,{n,}?,{n,m}? 可以看到,非贪婪模式的标识符很有规律,就是贪婪模式的标识符后面加上一个?

import re

s = ''
print(re.match('<.>', s).group())  # => 
print(re.match('<.>', s).group())  # => 

[Hard] 请介绍一下Python的线程同步?

思考30秒再往下翻...

25da48616a59d2724b5a805e46a3991d.png

一、 setDaemon(False) 当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行的最小单位,当设置多线程时,主线程会创建多个子线程,在Python中,默认情况下就是setDaemon(False),主线程执行完自己的任务以后,就退出了,此时子线程会继续执行自己的任务,直到自己的任务结束。

例子

import threading 
import time

def thread():
    time.sleep(2)
    print('---子线程结束---')

def main():
    t1 = threading.Thread(target=thread)
    t1.start()
    print('---主线程--结束')

if __name__ =='__main__':
    main()

#执行结果
---主线程--结束
---子线程结束---

二、 setDaemon(True) 当我们使用setDaemon(True)时,这是子线程为守护线程,主线程一旦执行结束,则全部子线程被强制终止

例子

import threading
import time
def thread():
    time.sleep(2)
    print('---子线程结束---')
def main():
    t1 = threading.Thread(target=thread)
    t1.setDaemon(True)#设置子线程守护主线程
    t1.start()
    print('---主线程结束---')

if __name__ =='__main__':
    main()

#执行结果
---主线程结束--- #只有主线程结束,子线程来不及执行就被强制结束

三、 join(线程同步) join 所完成的工作就是线程同步,即主线程任务结束以后,进入堵塞状态,一直等待所有的子线程结束以后,主线程再终止。

当设置守护线程时,含义是主线程对于子线程等待timeout的时间将会杀死该子线程,最后退出程序,所以说,如果有10个子线程,全部的等待时间就是每个timeout的累加和,简单的来说,就是给每个子线程一个timeou的时间,让他去执行,时间一到,不管任务有没有完成,直接杀死。

没有设置守护线程时,主线程将会等待timeout的累加和这样的一段时间,时间一到,主线程结束,但是并没有杀死子线程,子线程依然可以继续执行,直到子线程全部结束,程序退出。

例子

import threading
import time

def thread():
    time.sleep(2)
    print('---子线程结束---')

def main():
    t1 = threading.Thread(target=thread)
    t1.setDaemon(True)
    t1.start()
    t1.join(timeout=1)
    # 1 线程同步,主线程堵塞1s 然后主线程结束,子线程继续执行
    # 2 如果不设置timeout参数就等子线程结束主线程再结束
    # 3 如果设置了setDaemon=True和timeout=1主线程等待1s后会强制杀死子线程,然后主线程结束
    print('---主线程结束---')

if __name__=='__main__':
    main()

支持麦叔,请点在看,谢谢!

相关文章:

  • 命令行参数python sys模块_Python中处理命令行参数的3种方法
  • python菜鸟教程for循环_Python for 循环语句
  • 格力手机2 官方固件_格力悄悄上线首部双模5G手机:搭载骁龙765G,售价2699元起...
  • c#怎么拟合函数得到参数_数值计算(三十七)给定函数的参数拟合
  • python decorators_Python进阶之强大的装饰器 Decorators (一)
  • 设备能力指数cmk计算公式_拧紧微课堂|关于CM,CMK,CP,CPK
  • sql 转置_SQL -- 练习汇总
  • python语言中打印到屏幕上的函数是什么_Python基础之白话说函数
  • 概率论与数理统计思维导图_2020年基础考试高等数学思维导图
  • 用python画圆角矩形_如何用OpenCV绘制圆角矩形(带圆角的矩形)?
  • vfp控制excel选择全表_Excel快速填充功能,让你输入数据不只是快一点点
  • 遍历list 分组求和_LeetCode刷题实战49:字母异位词分组
  • spark labeledpoint函数用法_Hive常用的函数总结
  • python字符串子串替换方法_python替换字符串中的子串图文步骤
  • 多选框位置调整_水下目标检测竞赛冠军方案:多图像融合增强 | URPC 2019
  • 11111111
  • ES6 ...操作符
  • JavaScript创建对象的四种方式
  • linux学习笔记
  • MaxCompute访问TableStore(OTS) 数据
  • python大佬养成计划----difflib模块
  • Python进阶细节
  • SpingCloudBus整合RabbitMQ
  • use Google search engine
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 回流、重绘及其优化
  • 老板让我十分钟上手nx-admin
  • 三分钟教你同步 Visual Studio Code 设置
  • 什么软件可以剪辑音乐?
  • 使用 @font-face
  • 使用 Docker 部署 Spring Boot项目
  • 小程序01:wepy框架整合iview webapp UI
  • 新手搭建网站的主要流程
  • 在Mac OS X上安装 Ruby运行环境
  • No resource identifier found for attribute,RxJava之zip操作符
  • Hibernate主键生成策略及选择
  • 阿里云ACE认证之理解CDN技术
  • #、%和$符号在OGNL表达式中经常出现
  • #include
  • (39)STM32——FLASH闪存
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (理论篇)httpmoudle和httphandler一览
  • (实战篇)如何缓存数据
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)u-boot-nand.bin的下载
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • ***监测系统的构建(chkrootkit )
  • ***利用Ms05002溢出找“肉鸡
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • ... 是什么 ?... 有什么用处?
  • ./和../以及/和~之间的区别
  • .a文件和.so文件
  • .libPaths()设置包加载目录