小编Spe*_*e43的帖子

Python 中的 Vigenère 密码函数

看完这篇关于 Vigenere Cipher 的教程后,我(希望)理解了它的基本概念。我们想为字符串分配一个键,然后将字符串中的每个字母移动键中每个字母的(从 0 开始的)字母位置值。所以当以培根为重点时,

Meet me in the park at eleven am
baco nb ac onb acon ba conbac on
Run Code Online (Sandbox Code Playgroud)

变成

Negh zf av huf pcfx bt gzrwep oz
Run Code Online (Sandbox Code Playgroud)

当我从头开始编写 Vigenere Cipher 时,我只知道第一步是将密钥分配给字符串。当我这样做时,我想识别每个字符是否是 alpha 以便我可以保留字符串中的任何特殊字符(!、@、# 等)(如果有的话)。

text = input("Enter some text:")

def encrypt(text):

#key = bacon
encrypted = []
baconvalue = {'A':0, 'a':0, 'B':1, 'b':1, 'C':2, 'c':2, 'D':3, 'd':3, 'E':4, 'e':4, 'F':5, 'f':5, 'G':6, 'g':6, 'H':7, 'h':7, 'I':8, 'i':8, 'J':9, 'j':9, 'K':10, 'k':10, 'L':11, …
Run Code Online (Sandbox Code Playgroud)

python encryption function python-3.x vigenere

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

使用 JavaScript 将数组转换为列表

我正在通读Eloquent JavaScript,在第 4 章末尾,它挑战你将数组转换为列表,即

[1, 3, 3] --> {value: 1, rest: {value: 2, rest: {value: 3, rest: null}}};

我认为我不理解这个概念。

它建议向后迭代数组,所以我尝试过:

function arrayToList(array) {
    let list = {};
    for (let i = array.length -1; i > array[0]; i--) {
        list += ("value:" + i + ", rest: null");
    }
    return list;
}

console.log(arrayToList([1, 2, 3]));
Run Code Online (Sandbox Code Playgroud)

这会注销:

[object Object]value:2, rest: null

正如您所看到的,我不理解如何通过迭代创建“嵌套”对象(列表)。有人可以向我解释一下吗?

javascript arrays flatten

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

在Python中计算斜率的方法

我正在尝试用Python学习面向对象的编程.为此,我需要创建一个计算线的斜率的方法,该线将原点连接到一个点.(我认为)我们假设原点是(0,0).例如:

Point(4, 10).slopeFromOrigin()
2.5
Point(12, -3).slopeFromOrigin()
-0.25
Point(-6, 0).slopeFromOrigin()
0
Run Code Online (Sandbox Code Playgroud)

我们正在使用公式slope = (Y2 - Y1) / (X2 - X1)来计算斜率.此外,由于不允许除以0,因此我们需要None在方法失败时返回.这是我试过的:

class Point:

#Point class for representing and manipulating x,y coordinates

    def __init__(self, initX, initY):

#Create a new point at the given coordinates

        self.x = initX
        self.y = initY

    def getX(self):
        return self.x

    def getY(self):
        return self.y

    def distanceFromOrigin(self):
        return ((self.x ** 2) + (self.y ** 2)) ** 0.5

#define a method called slopeFromOrigin here

    def slopeFromOrigin(self):

#set …
Run Code Online (Sandbox Code Playgroud)

python methods equation object

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

Codewars 挑战 - JavaScript - 查找数组中的第一个非连续数字

Codewars 挑战链接

null这是非常基本的,但由于某种原因,我不明白为什么当数组中没有任何非连续数字时我无法返回。当数组不完全连续时,我的代码工作正常:

function firstNonConsecutive(arr) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i + 1] - arr[i] !== 1) {
      return arr[i + 1];
    }
  }
  return null;
}


console.log(firstNonConsecutive([ 0, 1, 2, 3, 4, 6, 7, 8, 9 ]));
Run Code Online (Sandbox Code Playgroud)

但如果数组连续的,即像这样:

function firstNonConsecutive(arr) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i + 1] - arr[i] !== 1) {
      return arr[i + 1];
    }
  }
  return …
Run Code Online (Sandbox Code Playgroud)

javascript arrays null for-loop

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

计算列表中数字平方和的函数

我正在尝试编写一个函数sum_of_squares(xs)来计算列表xs中数字的平方和.例如,sum_of_squares([2,3,4])应返回4 + 9 + 16,即29:

这是我试过的:

import random

xs = []

#create three random numbers between 0 and 50

for i in range(3):
    xs.append(random.randint(0,50))

def sum_of_squares(xs):

#square the numbers in the list

    squared = i ** i

#add together the squared numbers

    sum_of_squares = squared + squared + squared

    return sum_of_squares

print (sum_of_squares(xs))
Run Code Online (Sandbox Code Playgroud)

现在这总是打印

12
Run Code Online (Sandbox Code Playgroud)

因为它将i视为列表中的整数数,而不是整数的值.我怎么说"将值乘以整数的值",因为列表中有多个整数可以得到平方值?

问这个问题让我尝试这个:

import random

xs = []

#create three random numbers between 0 and 50

for i in range(3):
    xs.append(random.randint(0,50))

def sum_of_squares(xs):

#square the numbers …
Run Code Online (Sandbox Code Playgroud)

python integer function list

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

返回名称的大写首字母的函数

我创建了一个Python函数,它接受一个参数,fullname,获取fullname的首字母并将它们打印出来.但是我的代码存在问题 - 它只适用于两个名称.如果全名有一个中间名,即Daniel Day Lewis,则会中断.

这是我尝试过的:

def get_initials(fullname):
    xs = (fullname)
    name_list = xs.split()

    print(name_list)

#Given a person's name, return the person's initials (uppercase)

    first = name_list[0][0]
    second = name_list[1][0]

    return(first.upper() + second.upper())

answer = get_initials("Ozzie Smith")
print("The initials of 'Ozzie Smith' are", answer) 
Run Code Online (Sandbox Code Playgroud)

显然,这种尝试只包括两个变量,一个用于第一个名称,另一个用于第二个名称.如果我添加第三个变量,如下所示:

def get_initials(fullname):
    xs = (fullname)
    name_list = xs.split()

    print(name_list)

#Given a person's name, return the person's initials (uppercase)

    first = name_list[0][0]
    second = name_list[1][0]
    third = name_list[2][0]
    return(first.upper() + second.upper() + third.upper())

answer = get_initials("Ozzie …
Run Code Online (Sandbox Code Playgroud)

python indexing methods function list

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