10e нотация используется с переменными?

Я хочу знать, как я могу использовать нотацию 10eX в Python 2.7.9 с переменной. В терминах литералов 10eX дает (10^X).00000(число с плавающей запятой). Однако я хочу использовать некоторую переменную вместо литерала, и она не работает. Какое синтаксическое изменение я должен сделать, если это возможно, или есть ли другой способ сделать это? Заранее спасибо!

T = int(raw_input())
while T:
    N = int(raw_input())
    LIS = map(int,raw_input().split())
    num_lis, num = []*N, []*N
    low = int(10e+(N))
    high = int(10e+(N+1))
    temp, count = 0, 0
    for i in xrange(low,high):
        num_lis = [1]*N
        temp = i
        while temp!=0:
            r = temp%10
            num[high-1-i] = r
            temp=temp/10        
        for p in xrange[1,N]:
            for q in xrange(0,p):
                if num[q]<num[p]:
                    if num_lis[p]<(num_lis[q]+1):
                        num_lis[p]=num_lis[q]+1
            if LIS[p]!=num_lis[p]:
                break
            else:
                count++
    print count
    T-=1

При запуске интерпретатора я получаю сообщение об ошибке - 10e(N): неверный синтаксис

2 ответа

Решение

10e+4это обозначение для 10 * 10^4, а не операция. Вы должны использовать power-оператор:

low = 10 ** (N+1)
high = 10 ** (N+2)

Что-то вроде 10e3 это поплавок буквальный. Вы можете создать его как строку, а затем использовать float() преобразовать его в число (и int(float()) если вы хотите преобразовать это число в int):

>>> N = raw_input()
3
>>> float("10e"+N)
10000.0
>>> #compare:
>>> 10e3
10000.0

Вероятно, лучше использовать ответ @Daniel, но приведенное выше кажется ближе к тому, что вы пытались сделать с int(10e+(N)) так как вы явно спрашивали о литералах, которые зависят от переменных.

Другие вопросы по тегам