Это полная программа со всеми положительными условиями, отрицательными без использования библиотеки
import java.util.Scanner;
public class StringToInt {
public static void main(String args[]) {
String inputString;
Scanner s = new Scanner(System.in);
inputString = s.nextLine();
if (!inputString.matches("([+-]?([0-9]*[.])?[0-9]+)")) {
System.out.println("Not a Number");
} else {
Double result2 = getNumber(inputString);
System.out.println("result = " + result2);
}
}
public static Double getNumber(String number) {
Double result = 0.0;
Double beforeDecimal = 0.0;
Double afterDecimal = 0.0;
Double afterDecimalCount = 0.0;
int signBit = 1;
boolean flag = false;
int count = number.length();
if (number.charAt(0) == '-') {
signBit = -1;
flag = true;
} else if (number.charAt(0) == '+') {
flag = true;
}
for (int i = 0; i < count; i++) {
if (flag && i == 0) {
continue;
}
if (afterDecimalCount == 0.0) {
if (number.charAt(i) - '.' == 0) {
afterDecimalCount++;
} else {
beforeDecimal = beforeDecimal * 10 + (number.charAt(i) - '0');
}
} else {
afterDecimal = afterDecimal * 10 + number.charAt(i) - ('0');
afterDecimalCount = afterDecimalCount * 10;
}
}
if (afterDecimalCount != 0.0) {
afterDecimal = afterDecimal / afterDecimalCount;
result = beforeDecimal + afterDecimal;
} else {
result = beforeDecimal;
}
return result * signBit;
}
}
Вы также можете использовать option_context с одним или несколькими параметрами:
with pd.option_context('display.max_rows', None, 'display.max_columns', 3):
print(df)
Это автоматически вернет параметры к их предыдущим значениям.
Дополнение: Если вы работаете над jupyter-notebook, использование display
вместо print
будет использовать богатую логику отображения jupyter.
Вы можете достичь этого, используя метод ниже. просто пропустите общее число. столбцов, присутствующих в DataFrame, как arg to
'display.max_columns'
blockquote>Например, например:
df= DataFrame(..) with pd.option_context('display.max_rows', None, 'display.max_columns', df.shape[1]): print(df)
Не нужно взламывать настройки. Существует простой способ:
print(df.to_string())
Конечно, если это много, сделайте такую функцию. Вы даже можете настроить его для загрузки при каждом запуске IPython: https://ipython.org/ipython-doc/1/config/overview.html
def print_full(x):
pd.set_option('display.max_rows', len(x))
print(x)
pd.reset_option('display.max_rows')
As для окраски, слишком сложный, с цветами кажется мне контрпродуктивным, но я согласен с тем, что bootstrap's .table-striped
будет приятным. Вы всегда можете создать проблему , чтобы предложить эту функцию.
Попробуйте
pd.set_option('display.height',1000)
pd.set_option('display.max_rows',500)
pd.set_option('display.max_columns',500)
pd.set_option('display.width',1000)
Просто используйте это для печати целых кадров:
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_colwidth', -1)
Также вы можете создать функцию довольно печати с помощью диспетчера контекстов, как в приведенных выше примерах.
Полный список полезные опции:
pd.describe_option('display')
Несколько примеров использования: http://pandas.pydata.org/pandas-docs/stable/options.html
Если вы используете Ipython Notebook (Jupyter). Вы можете использовать HTML
from IPython.core.display import HTML
display(HTML(df.to_html()))
Используйте пакет tabulate:
pip install tabulate
И рассмотрим следующий пример использования:
import pandas as pd
from io import StringIO
from tabulate import tabulate
c = """Chromosome Start End
chr1 3 6
chr1 5 7
chr1 8 9"""
df = pd.read_table(StringIO(c), sep="\s+", header=0)
print(tabulate(df, headers='keys', tablefmt='psql'))
+----+--------------+---------+-------+
| | Chromosome | Start | End |
|----+--------------+---------+-------|
| 0 | chr1 | 3 | 6 |
| 1 | chr1 | 5 | 7 |
| 2 | chr1 | 8 | 9 |
+----+--------------+---------+-------+