Lv.1
Hello world!
在 【Python作品分享】数据比较器1.0【求助帖】 中回复
你这个如果代码太麻烦了,而且最多只支持3个数字之间的比较,可以考虑一下用插入、冒泡或者快速、Timesort,或者用python内置的排序sort()不过需要创建列表。我这里给你Timesort的代码
import traceback
class CodeSorter:
def __init__(self):
pass
def timsort(self, array):
if len(array) <= 1:
return array
mid = len(array) // 2
left = self.timsort(array[:mid])
right = self.timsort(array[mid:])
return self.merge(left, right)
def merge(self, left, right):
result = []
i = j = 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
result.extend(left[i:])
result.extend(right[j:])
return result
def sort(self):
try:
arr = list(map(float, input('逗号分开:\n').split(','))) # arr = list(map(int, input('逗号分开:\n').split(',')))
print(f'排序之前的代码:\n{arr}。')
print(f'排序之后的代码:\n{self.timsort(arr)}。')
self.sort()
except:
traceback.print_exc()
print('发生错误')
print('请检查输入并重试。')
self.sort()
while True:
if __name__ == '__main__':
sorter = CodeSorter()
sorter.sort()
2023-08-02T11:47:34 点赞:0
在 【Python作品分享】新的作品-3【求助帖】 中回复
这个代码报错的原因可能是因为缺少一些必要的变量或模块。根据你提供的代码,我注意到在函数find_hash_collision中使用了变量data和hash_values,但是它们在函数之外没有定义。另外,你还需要确保已经安装了hashlib、numpy和numba这些库。
为了解决这个问题,你可以按照以下步骤进行修改:
确保已经导入了hashlib、numpy和numba模块。你可以在代码开头添加以下导入语句:
import hashlib
import numpy as np
from numba import cuda
在find_hash_collision函数之前定义data和hash_values变量。你需要根据你的需求将data变量定义为一个包含字符串的列表,并将hash_values定义为一个空的字符串数组。例如:
data = ['string1', 'string2', 'string3', ...]
hash_values = np.empty(len(data), dtype=np.str)
确保在find_hash_collision函数中使用的变量在函数之前已经定义。这包括data和hash_values变量。
确保你的代码中没有其他语法错误或逻辑错误。
完成以上修改后,你的代码应该能够正常运行。如果你仍然遇到问题,请提供完整的错误信息,以便我能够更好地帮助你解决问题。
这是AI给出的答案,注意第二条代码data = ['string1','string2','stirng3',...]运行代码是别家...和,
2023-08-02T11:51:30 点赞:0
在 【Python作品分享】猜数字【作品秀】 中回复
可以运用GUI,例子:
import random
import tkinter as tk
from tkinter import messagebox
def guess_number():
target_number = random.randint(1, 100)
guesses_taken = 0
def check_guess():
nonlocal guesses_taken
try:
guess = int(guess_entry.get())
except ValueError:
messagebox.showerror('错误', '输入无效,请输入一个整数。')
return
guesses_taken += 1
if guess < target_number:
result_label.config(text='猜的数字太小了!')
elif guess > target_number:
result_label.config(text='猜的数字太大了!')
else:
messagebox.showinfo('恭喜', f'恭喜你猜对了!\n你猜了 {guesses_taken} 次。')
reset_game()
def reset_game():
nonlocal target_number, guesses_taken
target_number = random.randint(1, 100)
guesses_taken = 0
result_label.config(text='')
guess_entry.delete(0, tk.END)
# 创建主窗口
window = tk.Tk()
window.title('猜数字游戏')
# 创建游戏界面组件
guess_label = tk.Label(window, text='请输入一个1到100的整数:')
guess_label.pack()
guess_entry = tk.Entry(window)
guess_entry.pack()
check_button = tk.Button(window, text='猜', command=check_guess)
check_button.pack()
result_label = tk.Label(window, text='')
result_label.pack()
reset_button = tk.Button(window, text='重新开始', command=reset_game)
reset_button.pack()
# 运行主循环
window.mainloop()
if __name__ == '__main__':
guess_number()2023-08-02T11:55:10 点赞:0
在 python内置彩蛋 中回复
原文:
The Zen of Python, by Tim Peters
Beautiful is better than 喵.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
金山毒霸的译文:
蒂姆·彼得斯的《巨蟒蛇的禅宗》
美胜丑。
显式比隐式好。
简单总比复杂好。
复杂胜于复杂。
平比嵌套好。
稀疏性比稠密性好。
可读性计数。
特殊情况并不够特别,不能违反规则。
虽然实用性胜过纯洁性。
错误永远不应该悄无声息地传递下去。
除非明确沉默。
面对模棱两可,拒绝猜测的喵。
应该有一种明显的方法,最好是只有一种方法。
虽然这种方式在一开始可能并不明显,除非你不是荷兰人。
现在总比永远都没有好。
虽然从来没有经常比现在更好。
如果实现很难解释,那这是一个坏主意。
如果这个实现很容易解释,那么它可能是一个好主意。
名称空间是一个喇叭的好主意——让我们做更多这些!
2023-08-02T12:06:11 点赞:0
在 摩斯密码解码器,可以把摩斯密码转换成明文 中回复
morse_code = {
'.-': 'a', '-...': 'b', '-.-.': 'c', '-..': 'd', '.': 'e',
'..-.': 'f', '--.': 'g', '....': 'h', '..': 'i', '.---': 'j',
'-.-': 'k', '.-..': 'l', '--': 'm', '-.': 'n', '---': 'o',
'.--.': 'p', '--.-': 'q', '.-.': 'r', '...': 's', '-': 't',
'..-': 'u', '...-': 'v', '.--': 'w', '-..-': 'x', '-.--': 'y',
'--..': 'z'
}
while True:
a = input('摩斯密码: ')
a = a.replace('_', '-')
a = a.replace('*', '.')
a = a.replace('`', '.')
a = a.replace('/', ' ')
a = a.replace('—', '-')
a = a.replace(',', ' ')
a = a.replace('。', '.')
a = a.replace('、', '.')
a = a.replace('·', '.')
a = a.replace('~', ' ')
# 将摩斯密码转换为字母
result = ''
for code in a.split(' '):
if code in morse_code:
result += morse_code[code]
else:
result += '?'
print(result)2023-08-02T12:24:20 点赞:0
在 【Python作品分享】画五角星【作业帖】 中回复
用循环可以减少代码量
# 海龟作图
import turtle
t=turtle.Pen()
for i in range(5):
t.forward(100)
t.right(144)
2023-08-02T12:35:57 点赞:0