2016-07-19 2 views
-1

J'ai essayé d'utiliser raw_input pour prendre l'entrée d'une grande chaîne dans l'interpréteur python, ça marche bien.Comment prendre correctement une entrée en utilisant raw_input dans python dans des conditions données ci-dessous?

Mais quand j'ai essayé de faire la même chose en écrivant le raw_input dans le fichier. la variable reçue n'est pas égale à l'entrée. J'ai essayé d'imprimer la longueur de la variable dans les deux scénarios. Pourquoi la longueur de la variable est-elle différente dans les deux cas? et comment prendre cette entrée correctement?

J'utilise Ubuntu 14.04 64 bits

Voici les détails que j'essayées: -

[email protected]:~/Codes/github/hackerrank/algorithm/sorting$ python 
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> a = raw_input() 

3696 3739 3714 3719 3687 3732 3657 3664 3717 3702 3741 3683 3660 3648 3649 3721 3652 3683 3694 3647 3696 3673 3741 3732 3677 3738 3666 3741 3701 3723 3721 3648 3654 3706 3743 3733 3704 3668 3660 3741 3730 3710 3729 3739 3662 3647 3701 3713 3674 3663 3690 3696 3719 3690 3728 3653 3734 3718 3722 3721 3725 3723 3703 3665 3668 3669 3654 3692 3699 3691 3682 3646 3649 3712 3688 3646 3662 3724 3705 3714 3692 3680 3690 3741 3693 3729 3664 3692 3660 3652 3718 3723 3684 3650 3685 3725 3679 3734 3710 3735 3685 3711 3672 3715 3739 3687 3660 3735 3674 3672 3674 3705 3666 3714 3710 3740 3656 3667 3655 3707 3710 3730 3695 3661 3713 3708 3688 3646 3653 3652 3701 3689 3657 3654 3647 3648 3656 3696 3730 3721 3712 3735 3651 3657 3716 3742 3704 3742 3705 3673 3680 3720 3727 3658 3738 3684 3653 3669 3656 3711 3734 3741 3743 3742 3655 3709 3743 3709 3697 3648 3667 3726 3717 3673 3700 3655 3651 3654 3728 3724 3651 3704 3687 3659 3656 3721 3663 3727 3725 3723 3660 3666 3664 3683 3678 3665 3681 3737 3714 3723 3660 3662 3724 3672 3657 3690 3718 3726 3714 3742 3689 3725 3706 3719 3674 3736 3712 3681 3701 3715 3738 3719 3714 3664 3659 3692 3651 3647 3722 3691 3647 3675 3700 3646 3706 3687 3685 3722 3740 3730 3732 3703 3730 3667 3667 3718 3720 3695 3711 3679 3656 3680 3677 3744 3740 3668 3710 3690 3724 3695 3692 3647 3717 3717 3682 3741 3681 3717 3691 3700 3659 3673 3705 3673 3672 3691 3686 3737 3701 3702 3742 3689 3658 3680 3676 3679 3716 3696 3673 3669 3711 3726 3691 3703 3650 3669 3742 3697 3737 3665 3710 3723 3668 3690 3700 3725 3736 3723 3718 3701 3679 3714 3651 3736 3664 3705 3656 3722 3694 3665 3660 3656 3676 3664 3715 3654 3675 3666 3688 3660 3667 3726 3718 3736 3735 3684 3667 3703 3701 3664 3682 3678 3718 3687 3699 3726 3650 3730 3648 3695 3690 3730 3713 3711 3732 3692 3736 3654 3698 3735 3652 3711 3742 3712 3664 3671 3682 3645 3691 3716 3719 3738 3681 3720 3651 3680 3657 3733 3702 3673 3682 3651 3688 3646 3665 3743 3704 3669 3721 3742 3667 3730 3715 3653 3721 3704 3737 3729 3700 3648 3668 3696 3742 3700 3666 3735 3720 3657 3722 3684 3655 3692 3670 3671 3673 3744 3647 3701 3671 3713 3709 3674 3688 3715 3656 3686 3649 3737 3712 3696 3646 3677 3654 3669 3659 3723 3702 3687 3726 3737 3713 3646 3723 3704 3693 3710 3726 3649 3669 3645 3667 3683 3684 3662 3705 3669 3676 3715 3666 3677 3648 3738 3696 3678 3682 3655 3678 3678 3682 3676 3724 3720 3694 3740 3707 3737 3654 3698 3731 3683 3706 3687 3712 3735 3694 3708 3680 3675 3668 3660 3652 3656 3657 3649 3688 3681 3739 3716 3667 3680 3668 3670 3738 3716 3652 3711 3720 3744 3671 3677 3705 3668 3666 3744 3687 3692 3697 3687 3673 3722 3694 3709 3649 3725 3666 3681 3689 3721 3706 3721 3723 3722 3650 3696 3701 3725 3716 3648 3703 3709 3739 3687 3697 3647 3718 3660 3739 3657 3701 3651 3683 3731 3678 3645 3731 3654 3743 3702 3677 3645 3677 3698 3722 3722 3711 3724 3738 3663 3649 3697 3723 3655 3662 3715 3677 3729 3723 3689 3673 3678 3661 3737 3682 3675 3728 3652 3721 3650 3653 3744 3686 3738 3712 3685 3738 3660 3723 3660 3730 3723 3664 3698 3683 3685 3716 3741 3648 3731 3692 3659 3658 3669 3702 3724 3652 3675 3649 3657 3701 3678 3647 3719 3646 3655 3646 3708 3663 3725 3655 3660 3729 3702 3661 3712 3695 3668 3678 3648 3650 3733 3709 3666 3688 3687 3742 3682 3662 3704 3735 3697 3740 3727 3703 3692 3683 3700 3705 3649 3660 3738 3742 3679 3707 3721 3698 3675 3690 3676 3694 3744 3669 3658 3680 3654 3668 3706 3722 3667 3657 3744 3727 3710 3681 3672 3646 3692 3690 3723 3647 3732 3722 3689 3697 3683 3717 3686 3679 3646 3683 3708 3727 3673 3706 3647 3714 3652 3679 3687 3707 3660 3650 3723 3692 3717 3688 3660 3725 3699 3668 3733 3672 3737 3697 3704 3715 3665 3681 3677 3731 3734 3650 3708 3717 3716 3680 3735 3730 3698 3718 3694 3720 3648 3724 3690 3680 3670 3734 3698 3708 3656 3689 3726 3676 3683 3671 3671 3733 3709 3667 3680 3711 3687 3707 3720 3706 3728 3680 3683 3736 3659 3734 3721 3707 3720 3680 3662 3647 3656 3720 3658 3724 3717 3660 3704 3671 3662 3730 3734 3721 3712 3731 3737 3687 3740 3721 3674 3742 3645 3683 3717 3713 3653 3698 3718 3701 3645 3742 3681 3719 3720 3682 3652 3733 3707 3685 3675 3683 3701 3656 3645 3725 3655 3737 3681 3671 3711 3683 3715 3700 3732 3693 3705 3677 3701 3716 3683 3655 3676 3739 3650 3693 3666 3715 3726 3675 3683 3705 3672 3650 3654 3727 3647 3727 3668 3664 3734 3703 3650 3648 3700 3672 3673 3734 3666 3656 3693 3693 3684 3713 3704 3696 3658 3662 3726 3653 3692 3681 3729 3700 3703 3675 3696 3696 3678 3681 3678 3676 3682 3714 3659 3726 3662 3663 3675 3721 3741 3708 3695 3687 3694 3674 3725 3737 3691 3699 3665 3739 3703 3698 3669 3725 3663 3694 3741 3663 3673 3719 3652 3664 3734 3701 3647 3720 3675 3741 3732 3652 3686 3718 3655 3674 3732 3725 3722 3723 3678 3716 3669 3672 3673 3717 3650 3702 3690 3654 3692 3648 3728 3653 3702 3705 3712 3673 3685 3711 3697 3736 3691 3704 3725 3725 3727 3713 3728 3705 3674 3715 3662 3662 3739 3674 3700 3647 3718 3708 3678 3680 3715 3672 3726 3744 3704 3645 3742 3671 3663 3667 3674 3687 3679 3720 3690 3661 3650 3670 3657 3696 3654 3741 3731 

>>> len(a) 
4999 

>>> 
[email protected]:~/Codes/github/hackerrank/algorithm/sorting$ vim test.py 

[email protected]:~/Codes/github/hackerrank/algorithm/sorting$ cat test.py 

a = raw_input() 

print "=======================" 

print len(a) 

[email protected]:~/Codes/github/hackerrank/algorithm/sorting$ python test.py 

3696 3739 3714 3719 3687 3732 3657 3664 3717 3702 3741 3683 3660 3648 3649 3721 3652 3683 3694 3647 3696 3673 3741 3732 3677 3738 3666 3741 3701 3723 3721 3648 3654 3706 3743 3733 3704 3668 3660 3741 3730 3710 3729 3739 3662 3647 3701 3713 3674 3663 3690 3696 3719 3690 3728 3653 3734 3718 3722 3721 3725 3723 3703 3665 3668 3669 3654 3692 3699 3691 3682 3646 3649 3712 3688 3646 3662 3724 3705 3714 3692 3680 3690 3741 3693 3729 3664 3692 3660 3652 3718 3723 3684 3650 3685 3725 3679 3734 3710 3735 3685 3711 3672 3715 3739 3687 3660 3735 3674 3672 3674 3705 3666 3714 3710 3740 3656 3667 3655 3707 3710 3730 3695 3661 3713 3708 3688 3646 3653 3652 3701 3689 3657 3654 3647 3648 3656 3696 3730 3721 3712 3735 3651 3657 3716 3742 3704 3742 3705 3673 3680 3720 3727 3658 3738 3684 3653 3669 3656 3711 3734 3741 3743 3742 3655 3709 3743 3709 3697 3648 3667 3726 3717 3673 3700 3655 3651 3654 3728 3724 3651 3704 3687 3659 3656 3721 3663 3727 3725 3723 3660 3666 3664 3683 3678 3665 3681 3737 3714 3723 3660 3662 3724 3672 3657 3690 3718 3726 3714 3742 3689 3725 3706 3719 3674 3736 3712 3681 3701 3715 3738 3719 3714 3664 3659 3692 3651 3647 3722 3691 3647 3675 3700 3646 3706 3687 3685 3722 3740 3730 3732 3703 3730 3667 3667 3718 3720 3695 3711 3679 3656 3680 3677 3744 3740 3668 3710 3690 3724 3695 3692 3647 3717 3717 3682 3741 3681 3717 3691 3700 3659 3673 3705 3673 3672 3691 3686 3737 3701 3702 3742 3689 3658 3680 3676 3679 3716 3696 3673 3669 3711 3726 3691 3703 3650 3669 3742 3697 3737 3665 3710 3723 3668 3690 3700 3725 3736 3723 3718 3701 3679 3714 3651 3736 3664 3705 3656 3722 3694 3665 3660 3656 3676 3664 3715 3654 3675 3666 3688 3660 3667 3726 3718 3736 3735 3684 3667 3703 3701 3664 3682 3678 3718 3687 3699 3726 3650 3730 3648 3695 3690 3730 3713 3711 3732 3692 3736 3654 3698 3735 3652 3711 3742 3712 3664 3671 3682 3645 3691 3716 3719 3738 3681 3720 3651 3680 3657 3733 3702 3673 3682 3651 3688 3646 3665 3743 3704 3669 3721 3742 3667 3730 3715 3653 3721 3704 3737 3729 3700 3648 3668 3696 3742 3700 3666 3735 3720 3657 3722 3684 3655 3692 3670 3671 3673 3744 3647 3701 3671 3713 3709 3674 3688 3715 3656 3686 3649 3737 3712 3696 3646 3677 3654 3669 3659 3723 3702 3687 3726 3737 3713 3646 3723 3704 3693 3710 3726 3649 3669 3645 3667 3683 3684 3662 3705 3669 3676 3715 3666 3677 3648 3738 3696 3678 3682 3655 3678 3678 3682 3676 3724 3720 3694 3740 3707 3737 3654 3698 3731 3683 3706 3687 3712 3735 3694 3708 3680 3675 3668 3660 3652 3656 3657 3649 3688 3681 3739 3716 3667 3680 3668 3670 3738 3716 3652 3711 3720 3744 3671 3677 3705 3668 3666 3744 3687 3692 3697 3687 3673 3722 3694 3709 3649 3725 3666 3681 3689 3721 3706 3721 3723 3722 3650 3696 3701 3725 3716 3648 3703 3709 3739 3687 3697 3647 3718 3660 3739 3657 3701 3651 3683 3731 3678 3645 3731 3654 3743 3702 3677 3645 3677 3698 3722 3722 3711 3724 3738 3663 3649 3697 3723 3655 3662 3715 3677 3729 3723 3689 3673 3678 3661 3737 3682 3675 3728 3652 3721 3650 3653 3744 3686 3738 3712 3685 3738 3660 3723 3660 3730 3723 3664 3698 3683 3685 3716 3741 3648 3731 3692 3659 3658 3669 3702 3724 3652 3675 3649 3657 3701 3678 3647 3719 3646 3655 3646 3708 3663 3725 3655 3660 3729 3702 3661 3712 3695 3668 3678 3648 3650 3733 3709 3666 3688 3687 3742 3682 3662 3704 3735 3697 3740 3727 3703 3692 3683 3700 3705 3649 3660 3738 3742 3679 3707 3721 3698 3675 3690 3676 3694 3744 3669 3658 3680 3654 3668 3706 3722 3667 3657 3744 3727 3710 3681 3672 3646 3692 3690 3723 3647 3732 3722 3689 3697 3683 3717 3686 3679 3646 3683 3708 3727 3673 3706 3647 3714 3652 3679 3687 3707 3660 3650 3723 3692 3717 3688 3660 3725 3699 3668 3733 3672 3737 3697 3704 3715 3665 3681 3677 3731 3734 3650 3708 3717 3716 3680 3735 3730 3698 3718 3694 3720 3648 3724 3690 3680 3670 3734 3698 3708 3656 3689 3726 3676 3683 3671 3671 3733 3709 3667 3680 3711 3687 3707 3720 3706 3728 3680 3683 3736 3659 3734 3721 3707 3720 3680 3662 3647 3656 3720 3658 3724 3717 3660 3704 3671 3662 3730 3734 3721 3712 3731 3737 3687 3740 3721 3674 3742 3645 3683 3717 3713 3653 3698 3718 3701 3645 3742 3681 3719 3720 3682 3652 3733 3707 3685 3675 3683 3701 3656 3645 3725 3655 3737 3681 3671 3711 3683 3715 3700 3732 3693 3705 3677 3701 3716 3683 3655 3676 3739 3650 3693 3666 3715 3726 3675 3683 3705 3672 3650 3654 3727 3647 3727 3668 3664 3734 3703 3650 3648 3700 3672 3673 3734 3666 3656 3693 3693 3684 3713 3704 3696 3658 3662 3726 3653 3692 3681 3729 3700 3703 3675 3696 3696 3678 3681 3678 3676 3682 3714 3659 3726 3662 3663 3675 3721 3741 3708 3695 3687 3694 3674 3725 3737 3691 3699 3665 3739 3703 3698 3669 3725 3663 3694 3741 3663 3673 3719 3652 3664 3734 3701 3647 3720 3675 3741 3732 3652 3686 3718 3655 3674 3732 3725 3722 3723 3678 3716 3669 3672 3673 3717 3650 3702 3690 3654 3692 3648 3728 3653 3702 3705 3712 3673 3685 3711 3697 3736 3691 3704 3725 3725 3727 3713 3728 3705 3674 3715 3662 3662 3739 3674 3700 3647 3718 3708 3678 3680 3715 3672 3726 3744 3704 3645 3742 3671 3663 3667 3674 3687 3679 3720 3690 3661 3650 3670 3657 3696 3654 3741 3731 

======================= 

4095 

[email protected]:~/Codes/github/hackerrank/algorithm/sorting$ 
+3

Mettez un [mcve] ** dans la question **. – jonrsharpe

+0

S'il vous plaît regarder dans l'URL que j'ai inclus dans la question –

+0

@SheeshMohsin c'est exactement le point, nous préférons si vous ne publiez pas URL, mais plutôt de mettre le code pertinent lui-même dans la question –

Répondre

2

Ceci est une limite imposée par l'environnement dans lequel vous exécutez le programme. Votre shell n'attribue que 4096 caractères pour une seule ligne d'entrée. L'interpréteur interactif python alloue plus, c'est pourquoi il peut accueillir une ligne plus longue. Sur mon ordinateur portable, essayer d'entrer autant de texte sur une ligne semble geler l'interpréteur (plutôt que de tronquer l'entrée), bien que le fournir via un document ici fonctionne bien.

$ python test.py <<EOF 
3696 3739 3714 3719 3687 3732 3657 3664 3717 3702 3741 3683 3660 3648 3649 3721 3652 3683 3694 3647 3696 3673 3741 3732 3677 3738 3666 3741 3701 3723 3721 3648 3654 3706 3743 3733 3704 3668 3660 3741 3730 3710 3729 3739 3662 3647 3701 3713 3674 3663 3690 3696 3719 3690 3728 3653 3734 3718 3722 3721 3725 3723 3703 3665 3668 3669 3654 3692 3699 3691 3682 3646 3649 3712 3688 3646 3662 3724 3705 3714 3692 3680 3690 3741 3693 3729 3664 3692 3660 3652 3718 3723 3684 3650 3685 3725 3679 3734 3710 3735 3685 3711 3672 3715 3739 3687 3660 3735 3674 3672 3674 3705 3666 3714 3710 3740 3656 3667 3655 3707 3710 3730 3695 3661 3713 3708 3688 3646 3653 3652 3701 3689 3657 3654 3647 3648 3656 3696 3730 3721 3712 3735 3651 3657 3716 3742 3704 3742 3705 3673 3680 3720 3727 3658 3738 3684 3653 3669 3656 3711 3734 3741 3743 3742 3655 3709 3743 3709 3697 3648 3667 3726 3717 3673 3700 3655 3651 3654 3728 3724 3651 3704 3687 3659 3656 3721 3663 3727 3725 3723 3660 3666 3664 3683 3678 3665 3681 3737 3714 3723 3660 3662 3724 3672 3657 3690 3718 3726 3714 3742 3689 3725 3706 3719 3674 3736 3712 3681 3701 3715 3738 3719 3714 3664 3659 3692 3651 3647 3722 3691 3647 3675 3700 3646 3706 3687 3685 3722 3740 3730 3732 3703 3730 3667 3667 3718 3720 3695 3711 3679 3656 3680 3677 3744 3740 3668 3710 3690 3724 3695 3692 3647 3717 3717 3682 3741 3681 3717 3691 3700 3659 3673 3705 3673 3672 3691 3686 3737 3701 3702 3742 3689 3658 3680 3676 3679 3716 3696 3673 3669 3711 3726 3691 3703 3650 3669 3742 3697 3737 3665 3710 3723 3668 3690 3700 3725 3736 3723 3718 3701 3679 3714 3651 3736 3664 3705 3656 3722 3694 3665 3660 3656 3676 3664 3715 3654 3675 3666 3688 3660 3667 3726 3718 3736 3735 3684 3667 3703 3701 3664 3682 3678 3718 3687 3699 3726 3650 3730 3648 3695 3690 3730 3713 3711 3732 3692 3736 3654 3698 3735 3652 3711 3742 3712 3664 3671 3682 3645 3691 3716 3719 3738 3681 3720 3651 3680 3657 3733 3702 3673 3682 3651 3688 3646 3665 3743 3704 3669 3721 3742 3667 3730 3715 3653 3721 3704 3737 3729 3700 3648 3668 3696 3742 3700 3666 3735 3720 3657 3722 3684 3655 3692 3670 3671 3673 3744 3647 3701 3671 3713 3709 3674 3688 3715 3656 3686 3649 3737 3712 3696 3646 3677 3654 3669 3659 3723 3702 3687 3726 3737 3713 3646 3723 3704 3693 3710 3726 3649 3669 3645 3667 3683 3684 3662 3705 3669 3676 3715 3666 3677 3648 3738 3696 3678 3682 3655 3678 3678 3682 3676 3724 3720 3694 3740 3707 3737 3654 3698 3731 3683 3706 3687 3712 3735 3694 3708 3680 3675 3668 3660 3652 3656 3657 3649 3688 3681 3739 3716 3667 3680 3668 3670 3738 3716 3652 3711 3720 3744 3671 3677 3705 3668 3666 3744 3687 3692 3697 3687 3673 3722 3694 3709 3649 3725 3666 3681 3689 3721 3706 3721 3723 3722 3650 3696 3701 3725 3716 3648 3703 3709 3739 3687 3697 3647 3718 3660 3739 3657 3701 3651 3683 3731 3678 3645 3731 3654 3743 3702 3677 3645 3677 3698 3722 3722 3711 3724 3738 3663 3649 3697 3723 3655 3662 3715 3677 3729 3723 3689 3673 3678 3661 3737 3682 3675 3728 3652 3721 3650 3653 3744 3686 3738 3712 3685 3738 3660 3723 3660 3730 3723 3664 3698 3683 3685 3716 3741 3648 3731 3692 3659 3658 3669 3702 3724 3652 3675 3649 3657 3701 3678 3647 3719 3646 3655 3646 3708 3663 3725 3655 3660 3729 3702 3661 3712 3695 3668 3678 3648 3650 3733 3709 3666 3688 3687 3742 3682 3662 3704 3735 3697 3740 3727 3703 3692 3683 3700 3705 3649 3660 3738 3742 3679 3707 3721 3698 3675 3690 3676 3694 3744 3669 3658 3680 3654 3668 3706 3722 3667 3657 3744 3727 3710 3681 3672 3646 3692 3690 3723 3647 3732 3722 3689 3697 3683 3717 3686 3679 3646 3683 3708 3727 3673 3706 3647 3714 3652 3679 3687 3707 3660 3650 3723 3692 3717 3688 3660 3725 3699 3668 3733 3672 3737 3697 3704 3715 3665 3681 3677 3731 3734 3650 3708 3717 3716 3680 3735 3730 3698 3718 3694 3720 3648 3724 3690 3680 3670 3734 3698 3708 3656 3689 3726 3676 3683 3671 3671 3733 3709 3667 3680 3711 3687 3707 3720 3706 3728 3680 3683 3736 3659 3734 3721 3707 3720 3680 3662 3647 3656 3720 3658 3724 3717 3660 3704 3671 3662 3730 3734 3721 3712 3731 3737 3687 3740 3721 3674 3742 3645 3683 3717 3713 3653 3698 3718 3701 3645 3742 3681 3719 3720 3682 3652 3733 3707 3685 3675 3683 3701 3656 3645 3725 3655 3737 3681 3671 3711 3683 3715 3700 3732 3693 3705 3677 3701 3716 3683 3655 3676 3739 3650 3693 3666 3715 3726 3675 3683 3705 3672 3650 3654 3727 3647 3727 3668 3664 3734 3703 3650 3648 3700 3672 3673 3734 3666 3656 3693 3693 3684 3713 3704 3696 3658 3662 3726 3653 3692 3681 3729 3700 3703 3675 3696 3696 3678 3681 3678 3676 3682 3714 3659 3726 3662 3663 3675 3721 3741 3708 3695 3687 3694 3674 3725 3737 3691 3699 3665 3739 3703 3698 3669 3725 3663 3694 3741 3663 3673 3719 3652 3664 3734 3701 3647 3720 3675 3741 3732 3652 3686 3718 3655 3674 3732 3725 3722 3723 3678 3716 3669 3672 3673 3717 3650 3702 3690 3654 3692 3648 3728 3653 3702 3705 3712 3673 3685 3711 3697 3736 3691 3704 3725 3725 3727 3713 3728 3705 3674 3715 3662 3662 3739 3674 3700 3647 3718 3708 3678 3680 3715 3672 3726 3744 3704 3645 3742 3671 3663 3667 3674 3687 3679 3720 3690 3661 3650 3670 3657 3696 3654 3741 3731 
EOF