作业、变量、运算符及位运算及分支结构

作业:

1.写出判断一个数是否能同时被3和7整除的条件语句, 并且打印对应的结果。

num = eval(input('请输入需要判断的数字:'))
if num % 3 == 0 and num % 7 == 0:
    print("%d能被3和7同时整除" % num)
else:
    print('%d不能同时被3和7整除' % num)
1.png

2.写出判断一个数是否能够被3或者7整除,但是不能同时被3或者7整除, 并且打印对应的结果.

num1 = eval(input('请输入需要判断的数字:'))
if num1 % 3 == 0 or num % 7 == 0:
    if num1 % 21 == 0:
        print('%d能被3或者7整除而且能同时被3或者7整除' % num1)
    else:
        print('%d能被3或7整除但是不能同时被3或7整除' % num1)
else:
    print('%d不能被3或者7整除也不能被3或7同时整除' % num1)
2.png

3.输入年,写代码判断输入的年是否是闰年,如果是输出'闰年',否则输出'不是闰年'

year = eval(input('请输入年份'))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print('%d年为闰年' % year)
else:
    print('%d年不是闰年' % year)
3.png

4.今天上课讲了15000秒的课,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示。

tim_s = 15000
tim_h = int(15000 / 3600)
tim_mleft = int(tim_s % 3600)
tim_m=int(tim_mleft/60)
tim_s=0
print('今天上课{}小时,{}分钟,{}秒'.format(tim_h, tim_m, tim_s))
KDAL7G1Y(1BXWU6TCAI`V9U.png

5.定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!

公式: 体重(kg)/身高(m)的平方值在18.5 ~ 24.9之间属于正常。

weight=52
high=1.75
if 18.5<= weight/high**2<=24.9:
    print('身材正常')
else:
    print('身材不正常')
5.png

1)表达式0x13 & 0x17的值 == (19)
2)表达式0x13 | 0x17的值==(23)
3)表达式0x13 ^ 0x17的值==(4)
4)  若x=12,y=13则x&y的结果是==(12)

5)在位运算中,操作数每右移一位,其结果相当于( )

  • 操作数乘以2
  • 操作数除以2
  • 操作数乘以4
  • 操作数乘以4

6).设x 是一个整数(16bit).若要通过x|y使x低度8位置1,高8位不变,则y的二进制数是(0000000011111111)

总结

一、变量

1.什么是变量:声明变量是用来申请空间保存数据的 声明完变量后,使用变量就是使用变量里存储的值。

声明变量的语法:变量名 = 值
说明:变量名是由程序猿自己命名的:
要求:1.是标识符 2.不能是关键字
规范:见名知义;满足PEP8命名规范(所有的字母都小写;多个单词组合的变量名用下划线连接 stu_name)
不能使用系统提供的函数名、类名、库名等来给变量命名,如 True = 100
= -> 赋值符号,将右边的数据赋给左边的变量(verb)
值 ->任何有结果的表达式。例如:数据 已经声明过的变量 运算表达式等
例如下面的变量声明:

b1 = 0b1011
b = 5
b2 = True
b3 = 10 + 2
b4 = 10 + 2 + b3
print(b, b1, b2, b4, sep='\t', end='\n')
2.变量的使用:使用变量就是使用变量里存储的值;变量的值是可以修改的。
age = 50
age = 18
print(age)
3.同时声明多个变量

a.同时声明多个变量赋相同的值 变量名1=变量名2=变量名3=值
b.同时声明多个变量赋不同的值,变量1,变量名2,变量名3 = 值1,值2,值3

c1 = c2 = c3 = 10
print(c1, c2, c3)
x, y = 10, 20
print(x, y)
4.python变量声明的原理

先开辟空间存储数据(存储的数据需要多大的内存,就开辟多少内存空间,然后再将变量和数据对应的内存空间关联在一起)
变量三要素:
a=10
值 - 变量存储的数据(给变量赋值的数据 10 ) -使用变量
类型 - 给变量赋值的数据类型(int)
地址-给变量赋值的数据在内存中的地址,也是变量中真正存储的东西(0xff)

a = 10
print(a, type(a), id(a))
a = 100
print(a, type(a), id(a))
b = a
print(id(b))

输出如下:

10  1677903936
100  1677905376
1677905376

在Python中,用一个变量给另一个变量赋值的时候,是将原来的变量中数据的地址赋值给另外一个变量。
赋值完成后,数据还是只有一个,只是说数据的地址被两个变量所保存。

二、运算符

ython支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算,位运算。

1.数学运算符

+ - * / %(取余) //(整除) **(次方)幂运算

a、 + - * /与小学数学中的加减乘除功能一模一样

print(1 + 1,)
print(20 - 10,)
print(20 * 10)
print(5 / 2)

计算结果为:

2   10  200 2.5

b、 % -求余数,也叫取余、取模

print(5 % 2,)
print(10 % 4,)

计算结果为:

1    2

应用1:判断数字的奇偶性:判断这个数对2取余的结果是不是0。

print(20 % 2)
print(23 % 2)

计算结果为:

0    1

应用2:是否整除,判断余数是否为0。
应用3:取低位数,获取一个数的个位数是什么。

num = 123
print(num % 10)  # 3
print(num % 100)  # 23

c、整除:商只取整数部分。注意! 负数除不尽的时候向下取整

print(5 // 2)  # 2
print(3.9 // 3)  # 1.0

应用:取高位

print(num // 100)

d、** -幂运算 x**y ->求x的y次方

print(2 ** 3)  # 次方
print(8 ** (1 / 2))  # 开平方
result = 2 ** 5
print(result)

计算结果为:

8   2.8284271247461903   32

2.比较运算符

比较运算符 < > = != >= <=
1.< > >= <=和数学中的一样
所有的比较运算符的运算结果都是布尔值(True False)

print(10 > 20) # False
print(10 < 20) # True

2.== 和!= 是判断两个值是否相等和不相等

print(10 == 10)  #True
print(10 != 10)  #False

3.逻辑运算符 and(逻辑与) or(逻辑或) not(逻辑非),运算对象和运算结果都是布尔值.

a、and
运算规则为:两个都是True,结果才是为True,只要有一个是False,结果就是False
True and True = True
True and False = False
False and True = False
False and False = False 只要有一个False就是False
使用场景:需要多个条件同时满足的时候,就用and,相当于生活中的并且

# 获取奖学金的条件:
GPA = 4.5
score = 90
# 绩点不低于4 且测评分要高于95
if GPA >= 4 and score > 95:
    print("可以获得奖学金")
else:
    print("不能获得奖学金")

判断一个数是否能够同时被3和7整除

print('同时被三和七整除:', num1 // 7 == 0 and num1 // 3 == 0)

b、or
运算规则:两个都是false结果才是false,只要有一个是True,结果就是True
True or False == True
True or True == True
False or True == True
False or False == False
应用场景:在多个条件中,需要有一个条件满足就行,就使用false,相当于生活中的or
绩点不低于4或者测评分要高于95

print('能否获取奖学金', GPA >= 4 or score >= 95)

c、not
运算规则:True变False False变True
not True -> False
not False -> True
使用场景:对某一个条件进行否定
如:一个数不能同时被三和七整除的条件

print('不能同时被三和七整除', not (num1 % 7 == 0 and num1 % 3 == 0))

d、短路操作
and的短路操作:条件1 and 条件2 ,-> and前面的条件如果结果是False,那么后面的条件语句不会执行,结果直接是False
or的短路操作:条件1 or 条件2 ,or 前面的条件如果结果是True,那么后面的条件语句不会执行,结果直接是True

def func1():
    print('函数被执行了')


True and func1()  # and 遇到True了才会执行第二个条件
def func2():
    print('or的函数被执行了')


False or func2()  # 只有第一个条件是False,才会执行第二个条件
True or func2()  # 第一个条件是True,整个算式就是True,第二个条件不被执行

4.赋值运算符:= += *= -= /= //= **=

所有的赋值运算符左边必须是变量,组合赋值运算符的左边除了是变量
,这个变量还要求必须是已经声明过的
1):变量 = 数据 -> 将右边的数据赋给左边的变量

a = 10
b = 10 * 2

2):组合的赋值运算符
变量 += 值 —-> 变量=变量+值

bb = 100  # 组合赋值运算符要求一个已经声明的变量
bb += 10  # bb=bb+10
print(bb)

i = 5
i **= 5
print(i)

5.运算顺序

运算符优先级:
数学运算符 > 比较运算符> 逻辑运算符 > 赋值运算符(最低)
数学运算符的优先级和数学一样:*>,/,//,%
如果有括号,先算括号里面的

三.位运算

所有的位运算都是针对数字的补码进行操作的,特点就是快(效率高)
位运算:&(与),|(或),~(取反),^(异或), <<(左移),>>(右移)

1. &

运算规则:补码每一位上的数都是1,结果就是1,如果有一个是0结果就是0
应用:高效的判断数字的奇偶性
所有奇数的补码在计算机中最后一位都是1
所有偶数的补码在计算机中最后一位都是0
方法:让数字和1进行按位与运算.000000001 ,判断结果是0(偶数)还是1(奇数)

假设一个数字的补码是1101
另一个数字的补码是0111
1110 & 0111 == 0110
3的补码:00000011
2的补码:00000010
00000011 & 00000010 =00000010 == 2

奇偶性判断:

print(7 & 1, 9 & 1)  # 奇数与1与,结果为1
print(8 & 1, 16 & 1)  # 偶数与1与,结果为0

2 . |

运算规则:每一位上的数,如果都是0,则结果都是0,只要有1,结果都是1

1110 | 0111  -> 1111

3.~

运算规则:将每一个位上的0变1,1变成0

1101 -> 0010

print(~ -7)   # 11111001(补码) -> 00000110 == 6

4.^

运算规则:每一位上的数,如果是相同的,则为0,不同则为1

11011 ^ 10010  -> 01001

5.<<

数字< 数字的补码整体向左移动N位 数字左移一位就是这个数字2*N

print(2 << 1)  # 2*2**1=4
print(3 << 2)  # 3*2**2=12

6.>>

数字>>N 数字的补码整体向右移动N位 计算:数字//2**N

print(4 >> 1)  # 4//2**1==2
print(-8 >> 2)  # -8 // 2**2 == -2

四.分支结构

Python代码默认情况下是从第一行开始从上往下依次执行。除注释以外的每条语句都会执行
分支结构:某段代码是否执行看条件(if)

1.if结构

语法:
if 条件语句:
代码段
其他代码

说明:
if -关键字,为固定写法
条件语句 - 任何有结果的表达式都可以,例如:数据,已经声明过的变量,运算表达式(不能是赋值运算)
: -固定写法;一般有冒号的位置,后面都会换行加缩进
代码段 - 和if保持一个缩进的一条或者多条语句;需要满足条件才执行的代码。

执行过程:
先判断条件语句的结果是否为True(如果条件语句的结果不是布尔值,就先转换成布尔值再看,只要不是0不是空就全是True)
如果为True 就执行代码段 否则不执行

num = 10
if num & 1 == 0:
    print('偶数')

2.if-else

满足条件执行某个操作,不满足条件执行另外一个操作
语法:
if 条件语句:
代码段1 满足条件要执行的代码
else:
代码段2 不满足条件要执行的代码

执行过程:
先判断条件一句是否为True,如果为True就执行代码段1,否则执行代码段2

age = 20
# 根据年龄值范围打印成年或者未成年
if age >= 18:
    print('成年')
else:
    print('未成年')

你可能感兴趣的:(作业、变量、运算符及位运算及分支结构)