python必背入门代码:
defnot_empty(s):
returnsandlen(s。strip())>0
#returnsands。strip()
#如果直接单写s。strip()那么s如果是None,会报错,因为None没有strip方法。
#如果s是None,那么Noneand任何值都是False,直接返回false
#如果s非None,那么判定s。trip()是否为空。
这样子filter能过滤到None,"",""这样的值。
分成两部分看。第一部分是对长度进行序列。相当于就是range(5)他的结果就是。01234。第二部分就是具体的排序规则。排序规则是用nums的值进行排序,reverse没申明就是默认升序。就是用nums(0到4)的值进行排序,根据这个结果返回的一个range(5)的数组。
根据PEP的规定,必须使用4个空格来表示每级缩进。使用Tab字符和其它数目的空格虽然都可以编译通过,但不符合编码规范。支持Tab字符和其它数目的空格仅仅是为兼容很旧的的Python程序和某些有问题的编辑程序。
Python的函数支持递归、默认参数值、可变参数,但不支持函数重载。为了增强代码的可读性,可以在函数后书写“文档字符串”(Documentation Strings,或者简称docstrings),用于解释函数的作用、参数的类型与意义、返回值类型与取值范围等。可以使用内置函数help()打印出函数的使用帮助。
python3代码如下:
# coding:utf-8
import random
guess_list = ["石头", "剪刀", "布"]
win_combination = [["布", "石头"], ["石头", "剪刀"], ["剪刀", "布"]]
while True:
computer = random.choice(guess_list)
user = input('请输入:石头、剪刀、布\n').strip() # 删除首尾的空格
if user not in guess_list:
continue
elif computer == user:
print("平局,再来")
elif [computer, user] in win_combination:
print("你输了,哈哈")
else:
print("你赢了,恭喜")
break
运行结果如下:
平局或输都会继续游戏,直到赢才会结束
#IT教育# #IT# #程序员# #人工智能#
最近学习pytorch,看到下面的Python高难度代码例子和Python最复杂代码例子:
from google.colab import output as colab_output
from base64 import b64decode
from io import BytesIO
from pydub import AudioSegment
RECORD = """
const sleep = time =>new Promise(resolve =>setTimeout(resolve, time))
const b2text = blob =>new Promise(resolve =>{
const reader = new FileReader()
reader.onloadend = e =>resolve(e.srcElement.result)
reader.readAsDataURL(blob)
})
var record = time =>new Promise(async resolve =>{
stream = await navigator.mediaDevices.getUserMedia({ audio: true })
recorder = new MediaRecorder(stream)
chunks = []
recorder.ondataavailable = e =>chunks.push(e.data)
recorder.start()
await sleep(time)
recorder.onstop = async ()=>{
blob = new Blob(chunks)
text = await b2text(blob)
resolve(text)
}
recorder.stop()
})
"""
def record(seconds=1):
display(ipd.Javascript(RECORD))
print(f"Recording started for {seconds} seconds.")
s = colab_output.eval_js("record(%d)" % (seconds * 1000))
print("Recording ended.")
b = b64decode(s.split(",")[1])
fileformat = "wav"
filename = f"_audio.{fileformat}"
AudioSegment.from_file(BytesIO(b)).export(filename, format=fileformat)
return torchaudio.load(filename)
waveform, sample_rate = record()
print(f"Predicted: {predict(waveform)}.")
ipd.Audio(waveform.numpy(), rate=sample_rate)
js 的Promise函数对象编程,字符串javascript函数对象,IPython解释js对象,解释结果和python代码结合,IPython Shell显示非字符串数据,python音频使用IPython简单调用。
复杂Python模块下的多知识点结合代码,是Python高难度代码的体现。
Js的Promise理解为动态函数,比C++的类成员函数和全局函数这类静态形式的函数处理灵活,不过初学者理解起来麻烦。代码里sleep和b2text都代表一些处理函数,也就是几行代码,而不是数据。通常来讲,变量一般代表数据,但是这里代表了指令。