Python第四次任务

python多线程

事件——threading.Event()

clear将flag设置为 False
set将flag设置为 True
is_set判断是否设置了flag
wait会一直监听flag,如果没有检测到flag就一直处于阻塞状态
事件处理的机制:全局定义了一个Flag,当Flag的值为False,那么event.wait()就会阻塞,当flag值为True,那么event.wait()便不再阻塞


信号量——threading.BoundedSemaphore()

semaphore = threading.BoundedSemaphore(需要开启的线程的整数值)
def run(n,semaphore):
     semaphore.acquire()   #加锁
     time.sleep(3)
     print('run the thread:%s\n' % n)
     semaphore.release()    #释放

多线程对于I/O型任务时,具有提高效率的作用;但在计算型任务中,并不能提高计算速度,甚至可能因为线程之间的转换而导致资源的浪费。

python基础

'str'.format()

用于向字符串中输入指定类型的特定内容。

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
 
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
 
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的

class AssignValue(object):
    def __init__(self, value):
        self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的

while True:

直观来看,就是while的内部代码将无限运行下去。

具体的功能:

采用该语句的核心思想是如果出现错误的话,可以继续循环。
while True:
	name = input('请输入您的用户名:')
	if name in d:
		break
	else:
		print('您输入的用户名不存在,请重新输入')
		continue


如果密码错误的话,提示您还有几次输入密码的机会:
count = 5
while count:
	password = input('请输入您的密码:')
	if d[name] == password:
		print('进入系统')
		break
	else:
		count -= 1
		print('您输入的密码不正确,还有{}次输入机会'.format(count))
		continue

global

当函数内部使用或是修改函数外部的变量时,需要在变量名前+global

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值