day002

  1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
  2. 不能以数字开头。如:123name 就是不合法
  3. 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符
  4. 标识符的命名最好能反映出其作用,做到见名知意。
  5. 标识符不能是Java的关键字

#############################################################
不同字节代表开辟不同大小的存储空间,1 Byte = 8 Bits (1字节 = 8位)
±----------------------------------------------+
┆ 类型名 字节空间 取值范围 ┆
±----------------------------------------------+
┆整数型 byte 1 -128~127(有一位是0)
┆ short 2 … ┆
┆ int 4 ┆
┆ long 8 ┆
±----------------------------------------------+
┆浮点型 float 4 ┆
┆ double 8 ┆
±----------------------------------------------+
┆字符 char 2 ┆
±----------------------------------------------+
┆布尔 boolean 1 ┆
±----------------------------------------------+

#############################################################

除了8大基本类型,其他的都是引用类型(如String)
1)8大基本类型:
整型 byte short int long
浮点型 float double
字符型 char——只能保存一个字符,数据需要使用‘’包裹
布尔型 boolean——true,false
2)引用类型:数组 接口…
String——字符串——可以保存多个字符,数据使用“”包裹

#############################################################

ctrl+alt+方向键:屏幕显示翻转,上为正常。

数据类型调用方法时,这些数据类型叫做它们的“工具箱”。

科学计数法:13600,精确到十位,记作:1.360X10^4
aEb=a×10^b (1)3×104+4×104=7×10^4

#############################################################

char可以保存一个‘英文字符’或一个‘中文字符’
char c1 = ‘a’;//保存一个英文字符
char c2 = ‘中’;//保存一个中文字符
char c3 = 32;//可以直接保存数字,但会查ASCII码表
char c4 = ‘9’;//保存一个数字字符
char c5 = 56;
System.out.println(c1);
//如果char类型保存的是数字,那么会去ASCII码表中查询这个数字对应的字符打印出来
//char类型范围(065535)其中12865535范围内的字符,eclipse以?处理

#############################################################

Scanner:开启计算机的扫描模式把用户输入的信息收集起来。

java中 @SuppressWarnings(“resource”)----->SuppressWarnings这个批注可以取消一些特定代码段中的警告,比如你看到警告,你查了一下,发现他不是问题,可是你为了好看又不想让他报警,就可以加这个批注。

引用Scanner为什么会提示Configure problem severity----->这个是流,要关闭----->扫描仪名.close();–>关闭扫描仪(B模式输入才能关)

Eclipse中JAVA变量定义了未使用会报错。

A模式输入(此方法不够严谨,没有变量去调用close方法)
double r1 =new Scanner(System.in).nextDouble();
B模式输入
Scanner a =new Scanner(System.in);
double R = a.nextDouble();

#############################################################

整数字面值是int类型------>只要写一个整数就默认是INT类型(人为规定)----->输入超出INT范围数时必须在末尾加上【L】,告诉这个数它是double而非默认INT。

写一个小数就默认是double类型,末尾加上【f】则为float。
末尾加【D】则表示是double。

byte、short、char这几个比int小的数可以用范围内的数直接赋值------>byte(-128~127) b1 = 127;

运用:
System.out.println(3/2);//1,int/int,得到的结果类型还是int
System.out.println(3/2d);//1.5,int/double。得到的结果是double

#############################################################

进制前缀
0b - 标识这是2进制 ,如:0b0101
0 - 标识这是8进制, 8进制是三位,如: 023
0x - 标识这是16进制,如: 0x0001
\u - 标识这是char类型,属于16进制

#############################################################

             char
              ↓

byte–>short–>int------>long
↓ ↙↘ ↓
float---->double

#############################################################

小到大(隐式转换)
byte m = 120;
int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用
float f = 3.2f(不写f则为默认的double);
double d = f; -->可以执行

大到小(显式转换)
int x = 999;
byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,需强制类型转换
转换过程中可能导致溢出或损失精度,溢出就像钟表的指针超过12点,超过最大1点直接跳到最小
例如:int i =128; byte b = (byte)i; //打印的结果是-128
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

口诀:
小到大,直接转 大到小,强制转 浮变整,小数没
低 ------------------------------------> 高
byte,short,char→ int→ long→float→double

A模式:float c = (float) 3.14
B模式:float c = 3.14f;

double i =2.15;
int j = (int)i;//2–>浮变整,小数没

#############################################################

计算结果的数据类型,与最大数据类型一致
3/2–结果就是1,因为最大是INT
3d/2–结果是1.5,因为最大是double
3/2d–结果也是1.5
3.0/2–结果是1.5,因为小数默认自认是double

byte short char 三种比int小的类型,运算时会先自动提升成INT再参与运算

byte b3 = b1 + b2;错,这里实际上计算的是INT型的b1和b2相加,结果无法直接赋给更小的byte。
byte b3 = (byte)(b1 + b2);对。【笔试题中会出现】

光速:3亿m/s,求光跑一年的距离(光年)
System.out.println(300000000L606024365);正确
System.out.println(300000000606024365L);错误,
整数运算溢出出现在第一次计算中(300000000*60),这里的两个数任意一个加L皆可,但后面再加就无法得到正确结果了,因为错误已经在第一次计算中产生。

浮点数运算不精确的问题(面向对象阶段有精确计算的解决方案)
System.out.println(1-0.8);//0.199…98

除零会出现的问题:
①整数不能除0,数学报错。
②System.out.println(10.0/0);//小数除0,无穷
③System.out.println(0.0/0.0);//NaN–not a number

#############################################################

本记录:

关键字、标识符、注释、变量、基本类型、类型转换

运算规则(5条)
1.运算结果的数据类型与最大类型保存一致
2.3种比INT小的类型运算时要先自动提升成INT
3.
4.
5.

#############################################################

【练习】:
c=0;(笔试题)
print(–c-c-c–):1,最后现输出再自减
print©:-2,上面的减不影响变量,自减影响

求数字的绝对值:if(input < 0){return -input;}

ctrl+d:删除当前行

中文编码导致的乱码问题:当前项目–>右键–>主窗口中间GBK改UTF-8

cmd命令窗口:tree命令–>将当前目录下的文件以树形图的形式显示出来

搜狗–>属性设置–>可以启用"中文输入时使用英文标点"

第一次给变量值–>初始化
之后给变量值–>赋值
int a = 3;这里的3叫字面量

类型的工具箱写法:(两个特殊的)
int—>Integer
char—>Character

windows计算器有程序员模式–>不同进制同时显示.

char变量的字符(在范围内)赋值给INT变量,输出INT变量可发现变为了对应数字.
该数字赋值给Char变量,输出Char变量,可发现变回了对应字符.

自增自减符出现时只要不是单独出现,就先运行语句再增减.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import pandas as pd df = pd.read_csv('stock_data.csv') df['four_days_increase'] = df['close'].rolling(window=4).apply(lambda x: all(x[i] < x[i+1] for i in range(3))) * 1 df['three_days_decrease'] = df['close'].rolling(window=3).apply(lambda x: all(x[i] > x[i+1] for i in range(2))) * 1 capital = 1000000 max_stock_per_day = 10 max_stock_value = 100000 start_date = '2020-01-01' end_date = '2023-01-01' df = df[(df['date'] >= start_date) & (df['date'] < end_date)] df = df.reset_index(drop=True) hold_stock = [] for i, row in df.iterrows(): if len(hold_stock) > 0: sell_stock = [] for stock in hold_stock: if i - stock['buy_day'] >= 3: capital += stock['buy_price'] * stock['buy_qty'] * (1 - 0.002) sell_stock.append(stock) hold_stock = [stock for stock in hold_stock if stock not in sell_stock] df_today = df.loc[i:i+3] if i + 3 >= len(df): break if all(df_today['four_days_increase']) and all(df_today['three_days_decrease'].iloc[1:]): available_capital = capital available_stock = max_stock_per_day available_value = max_stock_value for j, stock_row in df_today.iterrows(): if available_capital > 0 and available_stock > 0 and available_value > 0: buy_qty = min(int(available_capital / (stock_row['close'] * 1.002)), available_stock, int(available_value / (stock_row['close'] * 1.002))) if buy_qty > 0: hold_stock.append({'buy_day': i, 'buy_price': stock_row['close'], 'buy_qty': buy_qty}) available_capital -= stock_row['close'] * buy_qty * 1.002 available_stock -= 1 available_value -= stock_row['close'] * buy_qty * 1.002 print('Final capital:', capital)让上述代码在jupyter里不报错
最新发布
06-02

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值