【数据分析】python基础必修3—条件语句/运算符/真假值/循环/算法练习

本文讲解了Python中的条件语句、运算符(包括成员运算符、逻辑运算符),以及真假值判断,深入剖析了字符串比较、ASCII码应用。后续探讨了循环结构(while、for及中断),并通过冒泡排序实例演示。最后提供了针对序列操作的作业题目。
摘要由CSDN通过智能技术生成

目录

1.条件语句

​2.运算符 

2.1成员运算符

2.2逻辑运算符 

3.真假值的判断

4.身份运算符 

5、循环 

 5.1while循环

 5.2for循环

5.3循环的中断

5.4循环算法练习:冒泡排序

6.作业



1.条件语句

之前我们学习了基本的条件控制以及比较运算符,详细请参阅python基础必修1。

# 先声明两个字符串

i = 'a'
j = 'B'
if i < j:
    print('a小')
else:
    print('a大')

输出结果

 为什么会输出a大呢?它们之间到底是怎样比较的?

其实,字符串之间的比较是按ASCII码表来的,它们之间的对应关系如下:

'0'-'9':48-57

'A'-'Z':65-90

'a'-'z':97-122

# 用ord()来显示字符的ASCII码值

i = 'a'
j = 'B'

print(ord(i))  # 打印i的ASCII码值
print(ord(j))  # 打印j的ASCII码值

输出结果

# 用chr()来将ASCII码值转换成字符


print(chr(97))

输出结果

2.运算符 

2.1成员运算符

'''
成员运算符
in not in
'''

my_string = 'abcdefg'

if 'a' in my_string:
        if 'b' in my_string:
            print("a和b都在my_string中")

if 't' not in my_string:
        print("t不在my_string中")

输出结果

2.2逻辑运算符 

'''
逻辑运算符

and or not
'''
house_person = ['建国','爱国','国庆','卫国']

if '建国' in house_person and '卫国' in house_person\  # 此处要添加\,否则报错,\代表这两部分是一行的
    and '爱国' in house_person and '国庆' in house_person:
    print("他们在搓麻将")
else:
    print("他们在打游戏")

if '建国' not in house_person:
    print("建国不在,麻将三缺一")
else:
    print("建国正在打游戏")

3.真假值的判断

关于True和False的讨论

print(True and False)
print(True or False)
print(not True)

print(1 and 0)
print(1 or 0)
print(not 1)

输出结果

根据输出结果可以看出

1其实代表了True,0代表了False

and 需要判断到最后一个,只有全部为真,才会返回真

or 只要碰到真,就直接返回真,后面的不用再判断 

 不是1和0程序如何判断?

print(3 and 4 and 5)
print(3 or 4 or 5)

输出结果

 再次验证and会判断到最后一个值5,然后输出,而or遇到第一个真值3就可以返回了。

4.身份运算符 

  

'''
身份运算符
is 
is not
'''

i = 1
j = 1
print(i == j)
print(i is j)

print(id(i))   # 打印输出i的地址 
print(id(j))

输出结果

list_1 = [1, 2, 3]
list_2 = [1, 2, 3]

print(list_1 is list_2)
print(list_1 == list_2)

print(id(list_1))
print(id(list_2))

 输出结果

从上面几个例子可以看出

is 判断的是这些量在内存中的地址

而 == 判断的是这些量的值 

5、循环 

 python中循环的思路框架

循环条件变化必须要有,否则会进入死循环,就像老和尚给小和尚讲故事一样。

 5.1while循环

# while循环:求1到10的和

n = 1        
sum = 0       # 用来计算和
while n<=10:
    sum += n   # 相当于sum = sum + n,之前有讲过+=的意思
    n += 1     # 相当于 n = n + 1
print(sum)

 输出结果

 5.2for循环

list = [1,2,3,4,5,6,7,8,9,10]
sum = 0

for i in list:     # 遍历list中的元素临时保存到i中
    sum = sum + i
print(sum)

# 上面的代码写起来是比较费劲的,下面为改进代码

sum = 0
for i in range(11):  # rang()表示一个范围,里面的参数不包含本身,也就是1-10
    sum = sum + i
print(sum)

输出结果

5.3循环的中断

 循环中的break:跳出整个循环

循环中的continue:跳出本次循环

# 只会输出1
while True:
    print(1)
    break
    print(2)

# 会陷入死循环
while True:
    print(1)
    continue
    print(2)

i = 1


while True:
    print("外层循环1")  
    while True:
        print("内层循环")
        break            # 跳到外层大循环
    print("外层循环2")
    break

5.4循环算法练习:冒泡排序

冒泡排序算法思路

从左到右,将数组中相邻的两个元素进行比较,把较大的放到后面。
1、比较相邻的元素,若第一个元素比第二个元素大,则交换这两个元素的位置;
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对;
3、针对所有的元素重复以上的步骤;

# 冒泡排序

nums = [3, 1, 25, 10, 15, 8, 6]  # 声明一个列表
for i in range(len(nums)-1):     # len()返回的是元素个数,角标需要减1(角标都从0开始)
    for j in range(len(nums) - i - 1):
        if nums[j] > nums[j + 1]:   # 判断前面的元素是否大于后面的元素
            nums[j], nums[j+1] = nums[j+1], nums[j]   # 若满足条件,两元素交换位置
        print("第" + str(j) + "次内循环" + str(nums))
    print("-----第" + str(j) + "次外循环" + str(nums) + "-----") 

print("冒泡排序后的结果:" + str(nums))

输出结果

这块对于初学者可能比较绕,可以现在纸上列出来自己写出每一次交换的结果,再对比程序。

6.作业

 已经有一个序列nums = [3, 1, 25, 10, 15, 8, 6] 

1、将这个序列从大到小排序

2、声明一个变量,数字 i =7 把这个i插入到序列中它应该在的大小位置。

思路提示:在判断的时候,可以重新声明一个新的序列,然后第一个序列中的值跟 i 比较

若比 i 大,可以直接放入新的序列;若比 i 小,那先放入 i ,然后放入剩下所有的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值