第二天
数据类型转换:
自动类型转换:
布尔类型和数值型,可以自动类型转换
在计算机中,布尔类型:True = 1 , False = 0
强制类型转换:
python字符串是无法和布尔类型,以及数值型进行自动类型转换
str( 数值或布尔 ) --- 将数值或布尔转换字符串
int( 字符串 ) --- 将字符串转换为整数
float( 字符串 ) --- 将字符串转换为浮点数
常见的运算符:
算术运算符:
+
-
*
/ --- 求商
% --- 求商取余
// --- 求商取整
** --- 幂次方,相当也有了开根号 --- 9 ** 0.5 = 3
关系(比较)运算符:
>
<
>=
<=
==
!=
返回结果是一个布尔类型(0或1)
逻辑运算符:
与 and --- 并且关系
或 or --- 或者关系
非 not --- 不是、取反
注:Python中编写时的“与”不是&,而是and。“或”不是 | ,而是or
所属运算符
in --- 判断某个值是否在一个容器中
not in --- 判断某个值是否不在一个容器中
注:python中没有自加和自减运算符(没有 i++ ++i i-- --i 等)
赋值符:
= --- 将等号右侧的值,赋值到左侧,等于赋值符的优先级别非常低
二元赋值符:
+= --- a += 1 --- a = a + 1
-=
*=
/=
**=
//=
%=
三目运算符:
其他编程语言中: 表达式 ? 值1 : 值2 (c = a+b ? 1:0 --- 如果c的值为a+b则赋给c的值为1)
python中三目运算符:
值1 if 表达式 else 值2
案例:
a = 20
b = 10
c = "神奇海螺" if a > b else "无所不知"
结果c的值是"神奇海螺"
位运算符:
bit:计算机中最小的单位
byte:字节,计算机中的基本单位,一个字节=8个位
& --- 与运算
| --- 或运算
^ --- 异或运算
~ --- 按位取反
<< --- 左移运算
>> --- 右移运算
Input —— 从键盘读取输入数据
Type(a)——查看a的数据类型
注意:input读入的数据为字符串类型(str),如果需要print输出,要么在输出语句中用%s,要么对读入的数据进行数据转换
print(“num1 = %s , num2 = %s ” %(num1, num2)) —— 将(num1,num2)的num1插入到num1=之后,将(num1,num2)的num2插入到num2=之后
print输出的几种格式
如下 *** 作都是一个字节运算的
【注意:目前讲解的都是整数】
n1 = 10 --- 0000 1010
n2 = 11 --- 0000 1011
n1 + n2 = 21
0000 1010
+ 0000 1011
---------------------
0001 0101 --- 21
一旦引入负数,为了表示正负(+ -)符号,固定最高位称为符号位,用来表示正负
符号位:0表示正数,1表示负数
n3 = -1 --- 1000 0001
n4 = -2 --- 1000 0010
n3 + n4 = -3
1000 0001
+ 1000 0010
---------------------
10000 0011 溢出一个位,因此结果是:0000 0011 = 3
在二进制,如果数值是正数,进行运算,和十进制一样,结果正常。但是如果引入负数,结果就会错误
为了解决这个问题,计算机学家,如下的三个概念:
原码:数字的二进制位
反码:正数不变,负数除符号位,其余取反
补码:正数不变,负数的反码+1
例:原码 0000 0001 1000 0001
反码 0000 0001 1111 1110
补码 0000 0001 1111 1111
计算机中所有二进制都是以补码运算的(为了解决负数问题)
1111 1111
1111 1110 +
---------------
1111 1101 此处为补码,要想得到结果需要化为原码
转换后得 1000 0011 -3
与运算 &
n1 = 10 # 0000 1010
n2 = 11 # 0000 1011
n1 | n2
0000 1010
0000 1011 &
------------------
0000 1010 10
或运算 |
0000 1010
0000 1011 |
------------------
0000 1011 11
异或运算 ^ 相反为真
0000 1010
0000 1011 ^
------------------
0000 0001 1
按位取反 ~
~xxxx xxxx,取反后如果是负数(例如~0000 0001 => 1111 1110),则是补码类型,要转换成原码
左移 <<
a << 2 --- a向左移动2位
右移 >>
a >> 2 --- a向右移动2位
注意:python中的右移都是无符号右移,不存在有符号右移
全局函数:
print() --- 标准输出
input() --- 标准输入
type() --- 类型判断函数
int() --- 将数值或布尔转换字符串
float() --- 将字符串转换为整数
str() --- 将字符串转换为浮点数
程序控制流程
控制语句之间的关联关系,实现逻辑性的
顺序
从上到下、从左到右执行流程
选择
单分支:
if 条件:
# 缩进体就是符合条件,需要执行的暧昧
双分支:
if 条件:
# 条件成立时,要执行的代码
else:
# 条件不成立的时候,需要执行的代码
多(三)分支:
if condition1:
# 条件1成立时,要执行的代码
elif condition2:
# 条件2成立时,要执行的代码
……
[else:
# 剩余条件
]
注:
If + 条件 + :+ 回车
+空格或tab,以下的if都按照这样的规则
作业要求:
作业1:两个数交换,要求使用异或法完成
作业2:判断一个数,是否是2的指数
2的指数
0000 0010 0000 0001
0000 0100 0000 0011
0000 1000 0000 0111
0001 0000 0000 1111
提示:所有2的指数:n & (n - 1) == 0
作业3:给定成绩,判断用户成绩的档次
100:提示满分
90~100:优秀
80~90:良好
70~80:还可以,多多努力
60~70:合格
0~60:不合格
0:鸡蛋
作业4:有1、3、5、7、9组成的所有不重复的四位数之和是多少?( )
A、666700 B、666600
C、678860 D、665500
作业5:一个会议有12个员工,假设已有8个员工是女性,求所有员工都是女性的概率( )
A、11/23 B、12/35
C、2/9 D、1/8
作业6:
在控制台上,输入如下信息
a a^2 a^3
1 1 1
2 4 8
3 9 27
作业7:下列哪一项是“4是奇数或-9为正数”的否定( )
A、4是偶数或-9不是负数
B、4是奇数或-9不是负数
C、4是偶数和-9是负数
D、4是奇数和-9不是负数
作业8:如果A是“10110110”,B是“11100000”,C是“10100000”,下面成立的是( )
A、 C=A|B
B、 C=~A
C、 C=~B
D、 C=A&B
作业9:判断一个整数是奇数还是偶数,至少有两种方式实现(位运算已经讲解的话)
作业10:求矩形的面积和周长
作业11:根据天数(从控制台上输入)计算周数和剩余的天数
作业12: 根据已知圆的半径radius(从控制台上输入),求其面积和周长(PI可以使用Math.PI,也可以使用3.14)
作业结果
1
2
3
4.5暂时不会
6
7
8
9
10
11
12
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)