python学习——while True的用法

在学习过程中,经常能遇到采用while True的用法。下面以一个例子进行说明:

建立一个用户登录系统,用户输入用户名和密码,如果正确就可以进入系统。

1、我自己最开始的写法:

d = {}        #数据库字典,所有用户的用户名密码存储在此

name = input("请输入您的用户名:")
if name in d:
	password = input("请输入您的密码")
	if d[name] == password:
		print('进入系统')
	else:
		print('您输入的密码错误,请重新输入')
else:
	print('您输入的用户名不正确,请重新输入')

这个自己写的程序逻辑上貌似是对的:
——先让用户输入用户名,如果存在该用户名,就继续让用户输入密码,如果密码正确就进入系统。如果密码不正确就重新输入。
——如果不存在该用户名,提示“您输入的用户名不正确,请重新输入”

但是在实际运行过程中,如果用户输入的用户名和密码都正确,那自然是没有问题的。但是如果有一个输入不正确,那系统只会显示“您输入的用户名不正确,请重新输入”或“您输入的密码错误,请重新输入”。也就是说,如果出现错误,没有返回到原来的地方,请求继续输入。

2、采用while True循环语句:

采用该语句的核心思想是如果出现错误的话,可以继续循环。

d = {}

while True:
	name = input('请输入您的用户名:')
	if name in d:
		break
	else:
		print('您输入的用户名不存在,请重新输入')
		continue

while True:
	password = input('请输入您的密码:')
	if d[name] == password:
		print('进入系统')
		break
	else:
		print('您输入的密码不正确,请重新输入')
		continue

以上程序就可以达到所需目的:在输入用户名或密码错误的情况下返回到开始部分,请求继续输入。

while True 语句中一定要有结束该循环的break语句,否则会一直循环下去的。

当然,我们遇见过如果密码错误的话,提示您还有几次输入密码的机会。可以这样实现:

count = 5
while count:
	password = input('请输入您的密码:')
	if d[name] == password:
		print('进入系统')
		break
	else:
		count -= 1
		print('您输入的密码不正确,还有{}次输入机会'.format(count))
		continue
  • 347
    点赞
  • 960
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
您可以使用Python的pyaudio模块来播放音频文件。下面是一个简单的示例代码: ```python import pyaudio import wave wf = wave.open("path/to/your/audio/file.wav", 'rb') p = pyaudio.PyAudio() stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), channels=wf.getnchannels(), rate=wf.getframerate(), output=True) data = wf.readframes(1024) while data != '': stream.write(data) data = wf.readframes(1024) stream.stop_stream() stream.close() p.terminate() ``` 这个代码将打开一个wav文件,使用pyaudio打开一个音频流,并将音频数据写入流中,从而播放音频。您可以根据需要修改代码以满足您的需求。 如果您想实现倍速播放,可以使用修改采样率的方式来实现。例如,将采样率从原始采样率的一半提高到原始采样率,就可以实现2倍速播放。修改示例代码如下: ```python import pyaudio import wave wf = wave.open("path/to/your/audio/file.wav", 'rb') RATE = int(wf.getframerate() / 2) # 修改采样率 SAMPLE_WIDTH = wf.getsampwidth() p = pyaudio.PyAudio() stream = p.open(format=p.get_format_from_width(SAMPLE_WIDTH), channels=wf.getnchannels(), rate=RATE, output=True) data = wf.readframes(1024) while data != '': stream.write(data) data = wf.readframes(1024) stream.stop_stream() stream.close() p.terminate() ``` 这个代码将音频文件的采样率减半,然后使用修改后的采样率来播放音频,实现2倍速播放。您可以根据需要修改代码以实现不同倍速的播放。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值