превращение приложения kivy в .exe [дубликат]

Хотя нет прямой команды для подсчета количества элементов в строке, мы можем подсчитать количество периодов или (E | e | D | d) с помощью команды scan . Например,

program main
    implicit none
    character(100) str
    integer n  
    read( *, "(a)" ) str

    call countreal( str, n )
    print *, "number of items = ", n
contains

subroutine countreal( str, num )
    implicit none
    character(*), intent(in)  :: str
    integer,      intent(out) :: num
    integer pos, offset

    num = 0
    pos = 0
    do
        offset = scan( str( pos + 1 : ), "." )        !! (1) search for periods
        !! offset = scan( str( pos + 1 : ), "EeDd" )  !! (2) search for (E|e|D|d)

        if ( offset > 0 ) then
            pos = pos + offset
            num = num + 1
            print *, "pos=", pos, "num=", num   !! just for check
        else
            return
        endif
    enddo
endsubroutine
end

Обратите внимание, что шаблон (1) работает только тогда, когда все элементы имеют периоды, а шаблон (2) работает только тогда, когда все элементы имеют показатели:

# When compiled with (1)

$ echo "2.9900  2.8000E-35  2.6300D-35  2.46  2.31" | ./a.out
 pos=           2 num=           1
 pos=          10 num=           2
 pos=          22 num=           3
 pos=          34 num=           4
 pos=          40 num=           5
 number of items =            5

# When compiled with (2)

$ echo "2.9900E-35  2.8000D-35  2.6300e-35  2.4600d-35" | ./a.out
 pos=           7 num=           1
 pos=          19 num=           2
 pos=          31 num=           3
 pos=          43 num=           4
 number of items =            4

Для более общих целей может быть удобнее написать пользовательскую функцию split (), которая разделяет элементы с пробелами (или использует внешнюю библиотеку, которая поддерживает функцию split).

2
задан Alan Casallas 28 July 2016 в 16:12
поделиться

1 ответ

У меня была та же проблема для моего приложения kivy, и я нашел решение ad hoc. Ошибка возникает из строки «import kivy», поэтому раскомментируйте ее и следующую строку «kivy.require ('1.0.6')». Там строки не нужны, если у вашего киви есть правильная версия.

1
ответ дан user6650911 19 August 2018 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: