파이썬 버전 목록


36

파이썬은 오늘날 가장 빠르게 성장하는 주요 프로그래밍 언어입니다. 3 년 연속 가장 많이 사용되는 언어입니다. 아직 사용하지 않는 개발자는 배우고 싶다고 말합니다. [1]

파이썬이 인기를 얻는 이유는 많은 버전입니다. [citation needed] 두 개의 개발 버전을 포함하여 실제로 116 개의 Python 버전이 있습니다.

당신의 임무는 모든 파이썬 버전의 목록을 원하는 순서대로, 원하는 형식으로 출력 / 인쇄하는 것입니다. 이 정보가 저장된 내장 기능을 사용할 수 없습니다.

당신은 출력 형식을 자유롭게 선택할 수 있지만, 각 버전은 표준 방법에 확인해야합니다 1.1, 2.3.0, 2.7.10과에 있도록.

전체 목록 파이썬 버전은 쉼표로 구분이 아래와 같습니다 :

1.1, 1.2, 1.3, 1.4, 1.5, 1.5.1, 1.5.2, 1.6, 2.0, 2.0.1, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.2, 2.2.1, 2.2.2, 2.2.3, 2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, 2.7, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16, 3.0, 3.0.1, 3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.2 , 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.4.8, 3.4.9, 3.4.10, 3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.6.5, 3.6.6, 3.6.7, 3.6.8, 3.7.0, 3.7.1, 3.7.2, 3.7.3

또는 주요 버전으로 :

1.1
1.2
1.3
1.4
1.5, 1.5.1, 1.5.2
1.6
2.0, 2.0.1
2.1, 2.1.1, 2.1.2, 2.1.3
2.2, 2.2.1, 2.2.2, 2.2.3
2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5
2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4
2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4
2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9
2.7, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16
3.0, 3.0.1
3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5
3.2, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6
3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7
3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.4.8, 3.4.9, 3.4.10 
3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7
3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.6.5, 3.6.6, 3.6.7, 3.6.8
3.7.0, 3.7.1, 3.7.2, 3.7.3

이 문제는 고정 된 출력 문제이며 출력 형식이 선택적이라는 점을 제외하고 와 매우 유사합니다 .

2 목록은 공식 Python 웹 사이트 ( 여기여기) 에서 가져옵니다 . 포함되지 않은 일부 버전 (예 : 0.9.0.. 0.9.9및)이 1.5.1p1있습니다. 포함되지 않은 버전을 찾더라도 위 목록을 사용해야합니다. 공식 목록을 고수하기로 결정했습니다. 그렇지 않으면 누군가 2.1.0.1.2버전이나 그와 비슷한 것을 찾을 수 있기 때문 입니다.


2
나는 우리가 1.1.0대신 (모든 버전을 3 숫자로 만들기 위해) 출력 할 수 없다고 생각 1.1합니까?
Kevin Cruijssen

2
@Kevin을 올바르게 추측합니다. 나는 그것을 허용하는 것을 고려했지만 대신 공식 이름으로 갔다.
Stewie Griffin

답변:


17

자바 스크립트 (ES6)  128 125  124 바이트

@ OlivierGrégoire 덕분에 1 바이트 절약

각 버전을 별도의 줄에 출력합니다. 가장 높은 버전에서 가장 낮은 버전으로, 가장 낮은 버전에서 가장 높은 버전으로 정렬됩니다.

f=(r=v=28)=>v?r<parseInt('0111131000244655ah002678b8940'[v],36)?(1+v/10).toFixed(1)+(r|v>22?'.'+r:'')+`
`+f(r+1):f(+!v--):''

온라인으로 사용해보십시오!

어떻게?

주 버전과 부 버전은 변수 v[0..27] .

  • 메이저 = v/10+1
  • 부 = vmod10

수정은 변수 r0 됩니다. r 의 최대 값은 v 따라 다르며 Base-36으로 인코딩 된 조회 테이블에 저장됩니다. 모든 0 이 테이블 수단에서이 버전은 전혀 공개되지 않았 음.

또한 테스트 v>22 를 사용하여 개정판이 0 때도 포함시켜야하는지 여부를 확인합니다 (Python 3.3.0부터).


5

C # (Visual C # 대화식 컴파일러) , 109 바이트

for(int j,k=1;;k++)for(j=@" [SOH][SOH][SOH][SOH][ETX][SOH][NUL][NUL][NUL][STX][EOT][EOT][ACK][ENQ][ENQ]
[DC1][NUL][NUL][STX][ACK][BEL][BS][VT][BS][TAB][EOT]"[k];j-->0;)Print($"{k*.1+1:N1}"+(j<1&k<17?"":"."+j));

코드가 괄호 안에 표시되는 인쇄 할 수없는 항목이 많이 있습니다. 이것은 전체 프로그램입니다. \0장치가 복사하여 붙여 넣을 수 없으므로 TIO 링크에서 null 바이트가 s 로 바뀝니다 .

@OlivierGregoire 덕분에 1 바이트를 절약했습니다.

온라인으로 사용해보십시오! (널 바이트를 주입 해 준 @OlivierGregoire에게 감사합니다)

설명

문자열의 각 문자는 주요 위치에서 몇 개의 부 버전을 나타냅니다. 예를 들어, 인덱스 5 ( ETX) 의 문자 는 ASCII 값이 3이며 1.5.x부 버전이 세 개인 주 버전에 해당합니다 . 이 프로그램은 현재 문자의 ASCII 값을 가져와 여러 번 반복하여 다음 주 버전으로 이동하기 전에 부 버전을 인쇄합니다.

일부 버전의 경우 다음 버전과의 차이가 있습니다. 이 문제를 해결하기 위해 문자열에는 null 바이트가 포함되어 있으므로 프로그램에서 해당 바이트를 만나면 0 번 반복됩니다.

인쇄 할 수없는 문자열에는 다음 문자 값이 포함됩니다.

1,1,1,1,3,1,0,0,0,2,4,4,6,5,5,10,17,0,0,2,6,7,8,11,8,9,4

j="..."[k];j-->0;순서가 중요하지 않으므로 특히 로 단축 할 수 있습니다 . 또한 TIO (115 바이트)와 항목 (110 바이트)의 크기 차이를 설명 할 수 있습니까?
Olivier Grégoire

@ OlivierGrégoire 아마도 tio가 \ 0으로 나타내는 5 개의 null 바이트
Sefa

@Sefa 예, 아마도 ... 그러나 나는 확실성을 요구하고 있습니다.
Olivier Grégoire

@ OlivierGrégoire 정확히 Sefa가 말한 것처럼 실제로 null 바이트를 복사하여 붙여 넣을 수는 없습니다. \0s가 널 바이트로 대체 된 경우 , 이는 110 바이트입니다.
무지의 실시


4

Pyth, 52 바이트

.emj\.+W|d>k18,h/k8%k8dbxLG"abbbbdbaceegffkrcghilije

여기에서 온라인으로 사용해보십시오 .

출력은 중첩 된 목록이며 요소는 주 버전과 부 버전으로 그룹화됩니다. 출력 시작시 비어있는 목록이 있고 그 다음에 또 다른 목록이 있습니다 1.6. 전체 출력은 다음과 같습니다.

[[], ['1.1'], ['1.2'], ['1.3'], ['1.4'], ['1.5', '1.5.1', '1.5.2'], ['1.6'], [], ['2.0', '2.0.1'], ['2.1', '2.1.1', '2.1.2', '2.1.3'], ['2.2', '2.2.1', '2.2.2', '2.2.3'], ['2.3', '2.3.1', '2.3.2', '2.3.3', '2.3.4', '2.3.5'], ['2.4', '2.4.1', '2.4.2', '2.4.3', '2.4.4'], ['2.5', '2.5.1', '2.5.2', '2.5.3', '2.5.4'], ['2.6', '2.6.1', '2.6.2', '2.6.3', '2.6.4', '2.6.5', '2.6.6', '2.6.7', '2.6.8', '2.6.9'], ['2.7', '2.7.1', '2.7.2', '2.7.3', '2.7.4', '2.7.5', '2.7.6', '2.7.7', '2.7.8', '2.7.9', '2.7.10', '2.7.11', '2.7.12', '2.7.13', '2.7.14', '2.7.15', '2.7.16'], ['3.0', '3.0.1'], ['3.1', '3.1.1', '3.1.2', '3.1.3', '3.1.4', '3.1.5'], ['3.2', '3.2.1', '3.2.2', '3.2.3', '3.2.4', '3.2.5', '3.2.6'], ['3.3.0', '3.3.1', '3.3.2', '3.3.3', '3.3.4', '3.3.5', '3.3.6', '3.3.7'], ['3.4.0', '3.4.1', '3.4.2', '3.4.3', '3.4.4', '3.4.5', '3.4.6', '3.4.7', '3.4.8', '3.4.9', '3.4.10'], ['3.5.0', '3.5.1', '3.5.2', '3.5.3', '3.5.4', '3.5.5', '3.5.6', '3.5.7'], ['3.6.0', '3.6.1', '3.6.2', '3.6.3', '3.6.4', '3.6.5', '3.6.6', '3.6.7', '3.6.8'], ['3.7.0', '3.7.1', '3.7.2', '3.7.3']]

이것이 허용되지 않으면 .n코드 앞에 2 바이트의 비용으로 플랫리스트로 출력되도록하십시오.


4

자바 (JDK) 134 바이트

v->{for(int a=0,b;;)for(b="0111131000244655:A002678;894".charAt(++a)-48;b-->0;)System.out.printf("%.1f%s ",a*.1+1,b<1&a<23?"":"."+b);}

온라인으로 사용해보십시오!

버전은 최고에서 최저로 인쇄됩니다.

크레딧


1
(a>1|b>0)&c<a.valueOf(y,36)할 수 있습니다 a>1|b>0&&c<a.valueOf(y,36)c<1&(a<3|b<3)?수 있습니다 c<1&&a<3|b<3?2 바이트를 저장합니다. 관련 Java 팁-섹션 괄호를 사용하는 대신 비트와 논리 검사를 결합
Kevin Cruijssen

@KevinCruijssen 감사합니다,하지만 귀하의 제안이 무의미 해 지도록 너무 많은 변경을했습니다. 더 이상 귀하의 제안을 사용하지 않기 때문에 귀하에게 크레딧을 제공하는 방법을 모릅니다 :(
Olivier Grégoire

1
Np 대신에 나는 새로운 골프를 제안 /10d할 것이다 .;)*.1
Kevin Cruijssen

1
int a=28-> int a=1, for 루프에서 조건을 제거한 다음 a++3 바이트를 저장하기 위해 를 추가하십시오 . TIO
무지의 구현


3

레티 나 , 105 바이트


11* 111131   244655TS  2678E894
L$`.
$&_$.`
T
10
E
11
S
17
.+_
*
Lv$`_+(.)(.)
$1.$2.$.%`
,16`(...)\.0
$1

온라인으로 사용해보십시오! @Arnauld의 솔루션을 기반으로합니다. 설명:


11* 111131   244655TS  2678E894

주어진 문자 뒤에 11 개의 공백으로 구성된 문자열을 삽입하십시오.

L$`.
$&_$.`

각 문자에 대해 접미사와 _열 번호를 나열하십시오 .

T
10
E
11
S
17

세 글자를 숫자 값으로 변환하십시오.

.+_
*

숫자 값을 단항으로 변환하십시오.

Lv$`_+(.)(.)
$1.$2.$.%`

주어진 값까지의 각 값에 대해 버전 번호의 접미 부로 사용하고 열 번호에서 주 및 부를 추출하십시오.

,16`(...)\.0
$1

첫 16 개 버전이있는 접미사 0을 삭제하십시오.


2

젤리 , 51 바이트

+⁵D;ⱮḶ}j€”.
“øṄƇịɱ⁽Ɱj>⁶7,Ẉ¢’b18Ė0ị$Ƈç/€ḣ3$€1¦€17R¤¦

온라인으로 사용해보십시오!

.주요 버전별로 그룹화 된 분리 된 정수 목록을 출력하는 나일 링크입니다 . TIO에는 이걸 예쁘게 인쇄하기위한 바닥 글 코드가 있습니다.


0

33 , 484 바이트

"1."es[lz1azpois4m]"1.5"pi"1.5."z1apoiapoi"1.6"pi"2.0"pip".1"pizcz"2.1"''pie"."e''es[lz1azpois3m]"2.2"''pie"."et''es[lz1azpois3m]"2.3"''pie"."et''es[lz1azpois5m]"2.4"''pie"."et''es[lz1azpois4m]"2.5"''pie"."et''es[lz1azpois4m]"2.6"''pie"."et''es[lz1azpois9m]"2.7"''pie"."et''es[lz1azpois16m]"3.0"pip".1"pi"3.1"''pie"."et''es[lz1azpois5m]"3.2"''pie"."et''es[lz1azpois6m]"3.3."''es[lzpoi1azs8m]"3.4."''es[lzpoi1azs11m]"3.5."''es[lzpoi1azs8m]"3.6."''es[lzpoi1azs9m]"3.7."''es[lzpoi1azs4m]

나는 이것을 나의 brainf * ck 스타일 언어로 바꾸고 싶었다.

도전에 필요한 각 파이썬 버전을 줄 바꿈으로 구분하여 인쇄합니다.

여기 작은 설명이 있습니다.

[lz1azpois4m] | Imitates a for loop starting at 1
[  1az    4m] | For i in range 1 through 4
      p       | - Print the string declared previously (1.5., 3.4., etc.)
       o      | - Print the current value of i
        i     | - Print a newline

[lzpoi1azs8m] | Imitates a for loop starting at 0
[     1az 8m] | For i in range 0 through 7
   poi        | Print the version
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.