小编joh*_*ith的帖子

python中的类继承

我正在解决这个问题:

考虑以下类的层次结构:

class Person(object):     
    def __init__(self, name):         
        self.name = name     
    def say(self, stuff):         
        return self.name + ' says: ' + stuff     
    def __str__(self):         
        return self.name  

class Lecturer(Person):     
    def lecture(self, stuff):         
        return 'I believe that ' + Person.say(self, stuff)  

class Professor(Lecturer): 
    def say(self, stuff): 
        return self.name + ' says: ' + self.lecture(stuff)

class ArrogantProfessor(Professor): 
    def say(self, stuff): 
        return 'It is obvious that ' + self.say(stuff)
Run Code Online (Sandbox Code Playgroud)

如上所述,当使用Arrogant Professor类时,此代码会导致无限循环.

更改ArrogantProfessor的定义,以便实现以下行为:

e = Person('eric') 
le = Lecturer('eric') 
pe = Professor('eric') 
ae = ArrogantProfessor('eric')

e.say('the …
Run Code Online (Sandbox Code Playgroud)

python oop class class-hierarchy python-2.7

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

在python中使用IFF

有没有办法在python中编写iff语句(即if和only if).我想像使用它一样使用它

for i in range(x)
    iff x%2==0 and x%i==0:
Run Code Online (Sandbox Code Playgroud)

但是,iffPython中没有声明.维基百科为iff定义了真值表,如下所示:

 a |  b  |  iff a and b
-----------------------
 T |  T  |      T
 T |  F  |      F
 F |  T  |      F
 F |  F  |      T
Run Code Online (Sandbox Code Playgroud)

我如何在Python中实现这一目标?

python python-2.7

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

在python中无聊的因子

我试图理解并解决以下问题:

Sameer和Arpit想要克服他们对数学的恐惧,所以他们最近一直在练习数学问题.阿曼,他们的朋友一直在帮助他们.但事实上,Sameer和Arpit对涉及阶乘的问题感到无聊.原因是,因子在问题中太容易计算,因为它们只需要以一些素数为模的残差,并且很容易在线性时间内计算.所以为了让事情变得有趣,Aman - The Mathemagician给了他们一个有趣的任务.他给了他们一个素数P和一个接近P的整数N,并要求他们找到N!模数P.他问这样的查询.

输入:

第一行包含一个整数T,即询问的查询数.

接下来的T行包含"NP"形式的T查询.(为清晰起见)

输出:

输出正好是T行,包含N!模数P.

Example
Input:
3

2 5

5 11

21 71

Output:
2

10

6



Constraints:

1 <= T <= 1000

1 < P <= 2*10^9

1 <= N <= 2*10^9


Abs(N-P) <= 1000
Run Code Online (Sandbox Code Playgroud)

现在我写了一个解决方案:

def factorial(c):
n1=1
n2=2
num=1
while num!=c:
    n1=(n1)*(n2)
    n2+=1
    num+=1
return n1


for i in range(int(raw_input())):
    n,p=map(int,raw_input().split())
    print factorial(n)%p
Run Code Online (Sandbox Code Playgroud)

但是你可以看到这是一个效率低下的解决方案,所以我开始寻找一个更好的解决方案,而不是我知道这可以用wilson和fermet定理来解决.但是我无法理解作者试图说的是什么他说:

**在数论中,威尔逊定理指出自然数n> 1是素数,当且仅当

在此输入图像描述

现在我们可以写:

(p-1)!   ?  -1 (mod p)

1*2*3*.........*(n-1)*(n)*..............*(p-1)  ?   -1 (mod p)

n!*(n+1)*...........*(p-1)   ?   -1 (mod …
Run Code Online (Sandbox Code Playgroud)

python algorithm

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

Python中的段树实现

我正在使用段树解决这个问题,但我得到时间限制错误.下面是我的范围最小查询的原始代码,通过在我的代码中更改,可以解决上述问题.我不知道如何提高代码的性能.你能帮我解决它的性能问题吗?minmax

t = [None] * 2 * 7      # n is length of list


def build(a, v, start, end):
    '''
    A recursive function that constructs Segment Tree for list a.
    v is the starting node
    start and end are the index of array
    '''

    n = len(a)
    if start == end:
        t[v] = a[start]
    else:
        mid = (start + end) / 2
        build(a, v * 2, start, mid)     # v*2 is left child of …
Run Code Online (Sandbox Code Playgroud)

python algorithm segment-tree

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

如何在颤动的底部导航栏中添加抽屉?

我想在用户单击第 4 个 ( more_vert) 图标时显示一个抽屉,但我无法实现它。在我当前的实现中,当单击第 4 个图标时,flutter 会将我带到一个新页面,并且显示抽屉没有按应有的方式显示在当前屏幕上。我究竟做错了什么 ?另外BottomNavigationBar 和BottomAppBar 之间有什么区别我在任何地方都找不到区别。我查看了几篇文章,我认为BottomAppBar用于显示底部应用栏中浮动的Fab。两者之间是否还有其他区别以及何时应该使用一种而不是另一种。

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  List<Widget> _widgetOptions = <Widget>[
    Page1(),
    Page2(),
    Page3(),
    Page4(),   // this page implements the drawer

  ];
  int _currentSelected = 0;

  void _onItemTapped(int index) {
    setState(() {
      _currentSelected = index;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: _widgetOptions.elementAt(_currentSelected),
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        onTap: _onItemTapped,
        currentIndex: _currentSelected,
        showUnselectedLabels: true,
        unselectedItemColor: Colors.grey[800], …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

如何在 Flutter 中保存用户登录详细信息?

我是颤振新手,想要制作一个只有经过身份验证的用户(通过填写电子邮件和密码)才能使用的应用程序。所以我正在考虑制作一个名为的根小部件,Authentication 我将在其中检查用户是否经过身份验证。如果它们是,则将它们带到Home()Widget(基本上是应用程序主页),否则带到 SignIn() Widget(这是登录页面)。

  • 我必须在 2 个级别中检查用户身份验证:
    • 当应用程序打开时,之前登录的用户无需再次登录
    • 填写电子邮件 ID 和密码后,用户单击Sign In按钮

我面临以下问题,不知道如何解决它们(假设没有注册选项,并且用户数据直接输入到数据库而不是通过某些 UI ):

  • 如果用户已经登录,如何将他们直接带到Home()Widget?

    这是我目前拥有的代码,我不确定是否是执行此类应用程序的正确方法,因此如果有更好的方法来执行此操作,请告诉:


    import 'package:flutter/material.dart';
    import 'package:myapp/home.dart';
    import 'package:myapp/signIn.dart';


    void main() => runApp(Authenticate());

    class Authenticate extends StatelessWidget {


      final String authenticateEmail;
      final String authenticatePassword;

      Authenticate({this.authenticateEmail, this.authenticatePassword}); 




      // Make a call to db to check if the data provided is correct or not 
      // If it is correct we then navigate the user to Home() Widget 
      // Else to SignIn() …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

以递归方式展平 Python 中的不规则列表列表

我搜索并发现具有相同标题的问题也是(这里 这里 这里 这里 这里),但我不是在问那个。我遇到了这个问题:

编写一个函数来展平一个列表。该列表包含其他列表、字符串或整数。

而我的代码是

t=[]
def flatten(aList):
    for i in aList:
        if type(i) !=list:
             t.append(i)
        else:
             flatten(i)

    return t     
Run Code Online (Sandbox Code Playgroud)

但是当我检查测试用例的代码时:

  1. flatten([[1], [1]]):检查器告诉我输出是[1, 1, 1, 1]但在 codeskulptor 中我得到正确的输出是[1, 1] .
  2. flatten([[[1]], [[[5]]]]):检查器告诉输出是[1, 1, 1, 1, 1, 2, 3, 3, 2, 1, 0, 4, 5, 6, 7, 1, 5]但在 codeskulptor 中告诉[1, 5]

许多测试用例都存在这个问题。然后我在 python 导师中检查了我的代码,发现在每次t返回列表时执行 if 语句之后,最后当函数停止时它返回最后编辑的列表t

我该如何解决这个问题,请帮我解决这个问题,是的,我是 Python 新手,对 itertools、lambda 函数用法、生成器等一无所知,所以请在我能理解的上下文中告诉我。

python python-2.7

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