小编New*_*101的帖子

根据值更改操作长度

上下文

我正在尝试创建一个程序,从左到右读取所有n对的乘积

例如,在数字2345678中:

  • 所有2对的乘积为2*3 = 6,3*4 = 12,4*5 = 20,5*6 = 30等...
  • 所有3对的乘积为2*3*4 = 24,3*4*5 = 60,4*5*6 = 120等...

我已经完成了问题的大部分解决方案,但我无法创建一个可以适应任何n值的操作

num = 2345678
num = str(num)


n = 2
start_pos = 0

for i in range(start_pos,len(num)):
    try:
        x += 1
        t = int(num[i]) * int(num[i+1]) # hardcoded for n = 2
        print(t)
        start_pos += 1
    except IndexError:
        break
Run Code Online (Sandbox Code Playgroud)

操作不同的n值

n = 2: t = int(num[i]) * int(num[i+1])

n = 3: t = int(num[i]) * int(num[i+1]) * int(num[i+2]) …

python

5
推荐指数
1
解决办法
81
查看次数

Tkinter如何将图像放入框架中

我看过有关此主题的其他帖子,但它们并不是很有结论,它们仅提供了使用其他模块来执行此操作的建议。

我正在尝试将我的maincharacter.pnghttp://pluspng.com/img-png/png-character--600.png)图像插入到我的top_left框架中。

代码(运行它):

from tkinter import *
from PIL import ImageTk, Image

class GameScreen:
    def __init__(self, master):

        # create all of the main containers
        top_left = Frame(master, bg='black', width=200, height=200)
        top_middle = Frame(master, bg='green', width=200, height=200)
        top_right = Frame(master, bg="green", width=200, height=200)
        middle_left = Frame(master, bg='green', width=200, height=200)
        middle = Frame(master, bg='green', width=200, height=200)
        middle_right = Frame(master, bg='green', width=200, height=200)
        bottom_left = Frame(master, bg='green',width=200, height=200 )
        bottom_middle = Frame(master, bg='green', width=200, height=200 )
        bottom_right …
Run Code Online (Sandbox Code Playgroud)

python tkinter

4
推荐指数
1
解决办法
2万
查看次数

如何在新行的列表中的单词的每个字母之间打印空格?

我想要的是

sentence = ["This","is","a","short","sentence"]

# Desired Output

T h i s
i s
a
s h o r t
s e n t e n c e
>>>
Run Code Online (Sandbox Code Playgroud)

我尝试了什么

sentence = [row.replace(""," ") for row in sentence]

for item in sentence:
    print(item)
Run Code Online (Sandbox Code Playgroud)

这个问题是它在每行的开头和结尾打印一个空格,但我只想在每个字母之间留一个空格

python for-loop list

3
推荐指数
2
解决办法
77
查看次数

如何比较两个条件的两个列表?

我特意尝试做什么

symbol_list = ["....firstline.\\.||hi",
               "pythonisasnake..\....",
               "||||last.\\|line\\..."]

normal_list = ["ABCDfirstlineEFGHIJhi",
               "pythonisasnakeKLMNOPQ",
               "RSTUlastVWXYlineZABCD"]
Run Code Online (Sandbox Code Playgroud)

symbol_list,我想用相应位置的字母替换符号,normal_list我想用列表替换列表中的非符号*

  • 符号永远是 . \ |

预期产量:

new_list = ["ABCD*********EFGHIJ**",
            "**************KLMNOPQ",
            "RSTU****VWXY****ZABCD"]
Run Code Online (Sandbox Code Playgroud)

这样做的解决方案是什么?

我试图做什么

对于这两个列表,我不知何故需要访问每行中的每个项目,这看起来真的很复杂.我尝试用for循环开始这个:

for symbol_row in symbol_list:
    for symbol_item in symbol_row:
        for normal_row in normal_list:
            for normal_item in normal_row:
Run Code Online (Sandbox Code Playgroud)

这令人困惑,似乎建议最多做两次

然后我试图检查其中一个条件:

if symbol_item in (".","\\","|"): # because \ is an escape character
    symbol_row = symbol_row.replace(symbol_item, normal_item)
Run Code Online (Sandbox Code Playgroud)

然后我添加了这个新行,new_list但我的列表最终比我打印出来之前的时间长了10倍

new_list.append(symbol_row)
Run Code Online (Sandbox Code Playgroud)

python for-loop list

3
推荐指数
1
解决办法
109
查看次数

在 PIL 中创建棋盘

背景

我一直在尝试在 PIL 模块中创建一个棋盘,并且我已经获得了前两行的一般模式,但无法弄清楚如何将其应用于整个棋盘。如您所见,我创建了一个图像:

from PIL import Image

img = Image.new("RGB", (15,15), "white") # create a new 15x15 image
pixels = img.load() # create the pixel map
Run Code Online (Sandbox Code Playgroud)

我对前两行的解决方案

注意 - 我仍在学习 Python,所以这段代码可能看起来效率很低,但请随时提出改进建议。

第二行:

代码:

black_2 = []
for i in range(img.size[0]):
    if i % 2 == 0:
        black_2.append(i)
Run Code Online (Sandbox Code Playgroud)

这为我提供了放置黑色像素的所有水平索引位置。因此,对于我创建的 15x15 板,它返回[0, 2, 4, 6, 8, 10, 12, 14]

第一行:

代码:

然后我使用第二行来计算第一行的水平索引位置

black_1 = [i-1 for i in black_2 if i > 0]
if img.size[0] % 2 == 0: # …
Run Code Online (Sandbox Code Playgroud)

python python-imaging-library

2
推荐指数
2
解决办法
2430
查看次数

OSError: [Errno 57] 套接字未连接

我试图使用该socket模块了解 python 上的网络,但我认为问题是我并不真正了解服务器或客户端的实际功能。

我正在尝试做的事情:

  • 首先使用 JSON 将字典转换为字符串,将字典从客户端发送到服务器
  • 让服务器向客户端发回消息以确认它们已连接

服务器程序

import socket
import json

HOST = '192.168.X.X'
PORT = 50034


with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen(1)
    conn, addr = s.accept()

    with conn:
        while True:
            data = conn.recv(1024)
            new_data = data.decode()
            new_data = json.loads(data)
            print(new_data["Name"],"has connected from",addr)
            message = ("Hello %s welcome to the chat server" % new_data["Name"]).encode()
            s.sendall(message)
            if not data:
                conn.sendall(data)
Run Code Online (Sandbox Code Playgroud)

客户端程序

import socket
import json

HOST = '192.168.X.X'
PORT = 50034

my_dict = {"Name":"Bob"}
jsn …
Run Code Online (Sandbox Code Playgroud)

python sockets json

2
推荐指数
1
解决办法
1万
查看次数

XOR运营商没有给出预期的结果?

我熟悉在Python中使用'和','not'和'或'运算符,我刚学会了'XOR'运算符的工作原理.

但是,当我编码时,它似乎不起作用:

a = 2
b = 12

if a == 2 ^ b == 12:
    print("You must be broken") # because TRUE XOR TRUE IS FALSE

if a == 10 ^ b > 12:
    print("You must also be broken") # because FALSE XOR FALSE IS FALSE

if a < 10 ^ b > 13:
    print("This should print because TRUE XOR FALSE IS TRUE")

if a > 3 ^ b == 12:
    print("This should print because FALSE XOR TRUE IS …
Run Code Online (Sandbox Code Playgroud)

python operators xor

1
推荐指数
1
解决办法
66
查看次数