这很好用,但我不明白为什么这样工作。我认为True值的返回应该在for循环内,但是当我运行该程序时,它的工作方式却相反。 有人可以指出我对返回值缩进的误解吗? 即使解决方案更短,我也想确切地了解我的编码方式。请帮忙!
# My attempt
def palindrome(s):
mylist = list(s)
j = -1
for i in range(0,len(mylist)-1):
if mylist[i] == mylist[j]:
i+=1
j-=1
continue
return False
return True
# Solution answer:
def palindrome(s):
return s == s[::-1]
答案 0 :(得分:1)
调用函数时,该函数只能返回一次。
这种package com.rajesh.service;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.rajesh.model.Role;
import com.rajesh.model.User;
import com.rajesh.repository.RoleRepository;
import com.rajesh.repository.UserRepository;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private RoleRepository roleRepository;
public User findUserByEmail(String email) {
return userRepository.findByEmail(email);
}
public void saveUser(User user) {
user.setShopname(user.getShopname());
user.setName(user.getName());
user.setEmail(user.getEmail());
user.setPassword(user.getPassword());
user.setMobile(user.getMobile());
user.setAddress(user.getAddress());
user.setActive(0);
user.setCreatedBy(user.getName());
user.setCreatedDate(new Date());
user.setUpdatedBy(user.getName());
user.setUpdatedDate(new Date());
Role userRole = roleRepository.findByRole("USER");
user.setRoles(new HashSet<Role>(Arrays.asList(userRole)));
userRepository.save(user);
}
public User loginUser(String email,String password) {
return userRepository.loginUser(email, password);
}
public Integer isActiveUserStatus(String email) {
Integer activeStatus = userRepository.isActiveUserStatus(email);
return activeStatus;
}
}
模式在各种编程语言中都很常见。它直观高效。
比方说,您必须检查1000个值的列表中是否仅包含偶数。您遍历列表并检查每个元素是否均等。 一旦找到奇数,就不需要走更远的距离。因此,您可以高效并立即返回并退出循环。
希望这里是您代码的更直观版本:
return
一旦您知道输入不是回文,就不需要进一步。 如果您不需要停下来,那就是回文。
答案 1 :(得分:0)
它们遵循与其他任何声明完全相同的规则。你写的意思
"project’s customized code snippet"
答案 2 :(得分:0)
# My attempt
def palindrome(s):
mylist = list(s)
j = -1
for i in range(0,len(mylist)-1):
if mylist[i] == mylist[j]:
i+=1
j-=1
continue
return False
return True
在上面的代码中,每次通过循环比较列表中的值(使用变量“ i”向前和使用变量“ j”)来比较值以检查值是否不匹配时,for循环中会发生什么。并在任何一个字母不匹配时立即返回false,因此退出循环。并且只有在for循环完成后才返回true,这意味着在循环中没有发现不匹配的情况
注意:i = 0给出第一个索引,i + = 1向前迭代,j = -1给出最后索引,j- = 1向后迭代
答案 3 :(得分:0)
基本上,当您在numpy中为数组建立索引时,您可以这样做:
a[start:end:step]
,适用于所有尺寸。如果step为负,则以相反顺序返回值。因此,如果step为-1,则数组a [::-1]是a [::]的反向数组。
a[::-1] = a[::]
然后,如果序列与其逆序列相同,则根据定义,它是回文。