类型转换
1)Java
1.java运算中的隐式类型转换:
- byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。
- 整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型
等级顺序:byte,short,char --> int --> long --> float --> double
2.Java中字符串变量可以和其它任意变量进行拼接
3.强制类型转换:目标类型 变量名 = (目标类型)变量值
2)Python
1 数字型变量之间可以直接计算
- 在 Python 中,两个数字型变量是可以直接进行 算数运算的
- 如果变量是
bool
型,在计算时True
对应的数字是1
False
对应的数字是0
演练步骤
- 定义整数
i = 10
- 定义浮点数
f = 10.5
- 定义布尔型
b = True
- 在 iPython 中,使用上述三个变量相互进行算术运算
2 字符串变量之间使用 +
拼接字符串
- 在 Python 中,字符串之间可以使用
+
拼接生成新的字符串
In [1]: first_name = "三"
In [2]: last_name = "张"
In [3]: first_name + last_name
Out[3]: '三张'
3 字符串变量 可以和 整数 使用 *
重复拼接相同的字符串
In [1]: "-" * 50
Out[1]: '--------------------------------------------------'
4 数字型变量 和 字符串 之间 不能进行其他计算
In [1]: first_name = "zhang"
In [2]: x = 10
In [3]: x + first_name
---------------------------------------------------------------------------
TypeError: unsupported operand type(s) for +: 'int' and 'str'
类型错误:`+` 不支持的操作类型:`int` 和 `str`
5.强制类型转换:变量名 = 目标类型(变量值)
运算符
1)Java
1.三元运算符
三元运算符语法格式:
关系表达式 ? 表达式1 : 表达式2;
解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。
2.逻辑运算符
逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false |
| | 逻辑或 | a|b,a和b都是false,结果为false,否则为true |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
3.短路逻辑运算符
&&
||
2)Python
1.Python 中的 逻辑运算符 包括:与 and/或 or/非 not 三种
2.Python中没有异或
3.Python中的三目运算符:
Python 提供了一种更加简洁的写法,如下所示:
max = a if a>b else b
这是一种类似于其它编程语言中三目运算符? :的写法。Python 是一种极简主义的编程语言,它没有引入? :这个新的运算符,而是使用已有的 if else 关键字来实现相同的功能。
使用 if else 实现三目运算符(条件运算符)的格式如下:
exp1 if contion else exp2
condition 是判断条件,exp1 和 exp2 是两个表达式。如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。
流程控制语句
1)Java
分支语句
1.if语句
- if语句格式1
格式:
if (关系表达式) {
语句体;
}
- if语句格式2
格式:
if (关系表达式) {
语句体1;
} else {
语句体2;
}
- if语句格式3
格式:
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
2.switch语句
- 格式
switch(表达式) { // 表达式:将要被匹配的值
case 值1: // case:后边跟要和表达式匹配的值
语句体1;
break; // 中断匹配
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
...
default:
语句体n+1;
break;
}
执行流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
- switch语句的case穿透现象
// 如果switch语句中,如果省略了break语句,就会开始穿透
// 需求:键盘录入星期数,输出工作日、休息日
// (1-5)工作日,(6-7)休息日
Scanner sc = new Scanner(System.in);
int week = sc.nextInt();
switch(week) {
case (1):
case (2):
case (3):
case (4):
case (5):
System.out.println("工作日");
break;
case (6):
case (7):
System.out.println("休息日");
break;
default:
System.out.println("您输入的数据有误");
break;
}
循环语句
1) for循环
循环语句-for循环
-
循环:
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。
-
for循环格式:
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
-
格式解释:
- 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
- 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
- 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
- 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
2)while循环
循环语句-while循环
-
while循环完整格式:
初始化语句; while (条件判断语句) { 循环体语句; 条件控制语句; }
-
while循环执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
-
示例代码:
public class WhileDemo {
public static void main(String[] args) {
//需求:在控制台输出5次"HelloWorld"
//for循环实现
for(int i=1; i<=5; i++) {
System.out.println("HelloWorld");
}
System.out.println("--------");
//while循环实现
int j = 1;
while(j<=5) {
System.out.println("HelloWorld");
j++;
}
}
}
3)循环语句-dowhile循环
-
完整格式:
初始化语句; do { 循环体语句; 条件控制语句; }while(条件判断语句);
-
执行流程:
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续
-
示例代码:
public class DoWhileDemo {
public static void main(String[] args) {
//需求:在控制台输出5次"HelloWorld"
//for循环实现
for(int i=1; i<=5; i++) {
System.out.println("HelloWorld");
}
System.out.println("--------");
//do...while循环实现
int j = 1;
do {
System.out.println("HelloWorld");
j++;
}while(j<=5);
}
}
4) 三种循环的区别
- 三种循环的区别
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
- for循环和while的区别
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
- 死循环(无限循环)的三种格式
- for(; 😉{}
- while(true){}
- do {} while(true);
5) 死循环
-
死循环格式
for死循环格式 : for(;;){ } while死循环格式 : while(true){ } do..while死循环格式 : do{ }while(true);
2)Python
分支语句
1.if 判断语句基本语法
格式1
在 Python
中,if 语句 就是用来进行判断的,格式如下:
if 要判断的条件:
条件成立时,要做的事情
……
注意:代码的缩进为一个
tab
键,或者 4 个空格 —— 建议使用空格
- 在 Python 开发中,Tab 和空格不要混用!
格式2
elif
- 在开发中,使用
if
可以 判断条件 - 使用
else
可以处理 条件不成立 的情况 - 但是,如果希望 再增加一些条件,条件不同,需要执行的代码也不同 时,就可以使用
elif
- 语法格式如下:
if 条件1:
条件1满足执行的代码
……
elif 条件2:
条件2满足时,执行的代码
……
elif 条件3:
条件3满足时,执行的代码
……
else:
以上条件都不满足时,执行的代码
……
2.Python中没有switch语句
循环语句
- 在Python中,循环分为
while
和for
两种,最终实现效果相同。 - Python中没有do while循环。
- 循环的作用:控制代码重复执行
1)while循环
- while语法
while 条件:
条件成立重复执行的代码1
条件成立重复执行的代码2
......
- while循环嵌套语法
while 条件1:
条件1成立执行的代码
......
while 条件2:
条件2成立执行的代码
......
2)for循环
- for循环语法
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
......
- Python中的
数据序列
:字符串、列表、元组、字典、集合 - break退出整个循环
- continue退出本次循环,继续执行下一次重复执行的代码
3)Python循环中的else
- else
- while和for都可以配合else使用
- else下方缩进的代码含义:当循环正常结束后执行的代码
- break终止循环不会执行else下方缩进的代码
- continue退出循环的方式执行else下方缩进的代码
随机数
1)Java
Random产生随机数
-
概述:
- Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能
- API后续课程详细讲解,现在可以简单理解为Java已经写好的代码
- Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能
-
使用步骤:
-
导入包
import java.util.Random;
-
创建对象
Random r = new Random();
-
产生随机数
int num = r.nextInt(10);
解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19
-
-
示例代码:
import java.util.Random;
public class Demo1Random {
/*
Random : 产生随机数
1. 导包 : import java.util.Random;
导包的动作必须出现在类定义的上面
2. 创建对象 : Random r = new Random();
上面这个格式里面,r 是变量名,可以变,其他的都不允许变
3. 获取随机数 : int number = r.nextInt(10); //获取数据的范围:[0,10) 包括0,不包括10
上面这个格式里面,number是变量名,可以变,数字10可以变。其他的都不允许变
需求: 产生随机数1-10之间的
*/
public static void main(String[] args){
// 2. 创建对象
Random r = new Random();
for(int i = 1; i <= 10; i++){
// 3. 获取随机数
int num = r.nextInt(10) + 1; // 1-10
System.out.println(num);
}
}
}
2)Python
随机数的处理
- 在
Python
中,要使用随机数,首先需要导入 随机数 的 模块 —— “工具包”
import random
-
导入模块后,可以直接在 模块名称 后面敲一个
.
然后按Tab
键,会提示该模块中包含的所有函数 -
random.randint(a, b)
,返回[a, b]
之间的整数,包含a
和b
-
例如:
random.randint(12, 20) # 生成的随机数n: 12 <= n <= 20
random.randint(20, 20) # 结果永远是 20
random.randint(20, 10) # 该语句是错误的,下限必须小于上限