当前位置: 首页>编程笔记>正文

【千锋Python2205班8.29笔记-day06-冒泡排序和字符串基础】

【千锋Python2205班8.29笔记-day06-冒泡排序和字符串基础】

01-homework

1.分别使用两种方法对列表去重

name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']
#间接删除
newList = []
for i in name_list:if i not in newList:newList.append(i)
print(newList)
#控制下标
index = 0
while index < len(name_list):if name_list.count(name_list[index]) > 1:del name_list[index]else:index += 1
print(name_list)

2.自己写代码实现类似于index方法的功能

1.
list = [1,2,3,3,4,5,3,1,1,3,5]
x = -1
for i in list:print(f'您要的元素{i}')x += 1print(f'下标是{x}')2.
numList = [1, 2, 3, 4, 5, 1, 2, 3]
num = 1
#index_控制开始查找的位置
index_ = 1
for i in range(len(numList[index_:])):if numList[index_:][i] == num:print(f'要查找的{num}的下标为{i + index_}')break
3.
list = []
numbers = int(input('请输入想要在列表中添加几个元素:'))
for i in range(numbers):j = input(f'第{i + 1}个元素是:')list.append(j)
print(list)
index = 0
i = input('请输入要查询的元素:')
for x in range(len(list)):if list[index] == i:print(f'您要查询的元素{i}所对应的下标是{index}')else:index += 1

3.自己写代码实现类似于reverse方法的功能

numList = [1, 2, 3, 4, 5, 1, 2, 3]
numList = numList[::-1]
print(numList)

4.自己写代码实现类似于count方法的功能

numList = [1, 2, 3, 4, 5, 1, 2, 3]
count_ = 0
symbol = 10
for i in numList:if i == symbol:count_ += 1
print(f'{symbol}出现了{count_}次')

5.输入三条边长,如果能构成三角形就计算周长和面积

a = float(input('请输入一条边长:'))
b = float(input('请输入一条边长:'))
c = float(input('请输入一条边长:'))
if a + b > c and a + c > b and b + c > a:permiter = a + b + cprint(f'这个三角形的周长为{permiter}')# 海伦公式(秦九韶公式)area = (permiter / 2 * (permiter / 2 - a) * (permiter / 2 - b) * (permiter / 2 - c)) ** 0.5print(f'这个三角形的面积为{area}')
else:print('这三条边不能组成三角形')
import random
score = [[random.randint(0, 100) for _ in range(3)] for _ in range(5)]
score.insert(0, ['数学', '语文', '英语'])
print(score)
score = [['数学', '语文', '英语'], [46, 53, 20], [93, 99, 18], [21, 25, 9], [74, 43, 79], [87, 66, 13]]

上述成绩列表为通过random模块结合列表推导式随机生成的5名同学的数学、语文、英语三科成绩,请分别求出每科的平均成绩。

score = [['数学', '语文', '英语'], [46, 53, 20], [93, 99, 18], [21, 25, 9], [74, 43, 79], [87, 66, 13]]
lenght = len(score[1:])
for j in range(len(score[0])):# 求每个学科的总分sum = 0# print(score[0][j])for i in range(1, lenght + 1):# print(score[i][j])sum += score[i][j]print(f'{score[0][j]}的平均分为{sum / lenght}')

7.五人分鱼。A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。 B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 C、D、E依次醒来,也按同样的方法拿鱼。问他们至少捕了多少条鱼?

第一种方法

fish = 0
while True:a_fish = fishenough = Truefor _ in range(5):if (a_fish - 1) % 5 == 0:a_fish = (a_fish - 1) / 5 * 4else:enough = Falsebreakif enough == False:fish += 1else:break
print(fish)

第二种方法

#fish表示总鱼数
fish = 1
while True:total = fishfor _ in range(5):if (total - 1) % 5 == 0:total = (total - 1) // 5 * 4else:fish += 1breakelse:print(f'总鱼数为{fish}')break

8.判断一个数字是否是丑数(丑数定义详情见百度)
这个数字只能被2、3、5三个质数整除,1是最小的丑数。
1、2、3、4、5、6、8、9、10、12、15等

num = 14
numCopy = num
while num > 0 and type(num) == int:if num % 2 == 0:num //= 2elif num % 3 == 0:num //= 3elif num % 5 == 0:num //= 5elif num == 1:print(f'{numCopy}是丑数')breakelse:print(f'{numCopy}不是丑数')break
else:print('输入错误')

9.英制单位英寸和公制单位厘米互换。如果输入的是厘米就转为英寸,反之转换为厘米。
#注意:厘米(cm) = 英寸(in) * 2.54

num = '10'
flag = 'cm'
if flag == '厘米' or flag == 'cm':print(f'{num}{flag}等于{float(num) / 2.54:.2f}英寸')
elif flag == '英寸' or flag == 'in':print(f'{num}{flag}等于{float(num) * 2.54}厘米')

02-冒泡排序算法

时间复杂度
空间复杂度
时间换空间,空间换时间,时间和空间总是趋于平衡。

算法:作用:优化程序。

冒泡排序
1.一趟排序能够找出参与本趟排序的元素的最大值。
2.本趟排序找出的最大值不参与下一趟排序。
3.总的排序趟数等于总的元素个数减1
4.每一趟排序的比较次数为参与本趟排序的元素个数减1

numList = [10, 55, 0, -10, 68, 99]
#控制循环趟数,同时还能控制本趟排序参与排序的元素个数
for i in range(1, len(numList)):print(f'这是第{i}趟排序,排序开始前列表为{numList}')# 提取两个元素比较大小for j in range(len(numList) - i):if numList[j] > numList[j + 1]:numList[j], numList[j + 1] = numList[j + 1], numList[j]print(f'第{j + 1}次排序后结果为{numList}')print('*******************')
print(numList)

03-字符串

1.什么是字符串

由引号包围的一串有限个的符号的组合。人类自然语言中字符串可以作为一串文本。

2.字符串性质

1.字符串是有序的。(下标,每个元素有自己的固定位置)
2.字符串不可变的。(没有增删改)
3.只要放入字符串的引号里面,任何数据都会编程没有意义的符号。
4.字符串的容器符号:”、" “、”“” “”"、‘’’ ‘’’
5.字符串的数据类型:str

3.字符串的组成

转义字符、原始字符串、一般字符串

4.字符串的拼接和重复

str1 = 'abcd'
str2 = '1234'
print(str1 + str2)print('*' * 20)

5.成员运算

in、not in
子串:字符串中所有单个的符号或连续的N个符号都是这个字符串的子串

print('abc' in 'abcd')
print('abc' not in 'abdc')

6.比较大小

print('abc' > '123')
print('abc' > 'abd')

字符串比较大小比较的是第一对不相同元素的ASCII编码的大小。
ASCII码表中符号列涉及的符号均为字符串。
0-9对应的十进制为:48~57
A-Z对应的十进制为:65~90
a-z对应的十进制为:97~122

Python使用的是Unicode编码表,Unicode编码表又叫万国码,emoji表情符号被包含在Unicode编码表中。
Unicode编码表是在ASCII码表基础上的拓展。
中文范围:\u4e00~\u9fa5
19968~40869

chr():将数值再转换为对应的符号。
ord():将编码表中的符号转换为十进制。

print(ord('0'), chr(48))
print(ord('\u4e00'), ord('\u9fa5'))
for i in range(19968, 40870):print(chr(i), end='')

字符串的遍历:
直接遍历

str1 = 'abcde'
for i in str1:print(i)

间接遍历

for index in range(len(str1)):print(f'下标{index}对应元素为{str1[index]}')

字符串的下标和切片 等同于 列表的下标和切片!!!
字符串的下标和切片 等同于 列表的下标和切片!!!
字符串的下标和切片 等同于 列表的下标和切片!!!

练习:
将 ‘abcABC’ 转换为 ‘ABCabc’

str1 = 'abcABC'
str2 = ''
for i in str1:if 'A' <= i <= 'Z':# str2 = str2 + chr(ord(i) + 32)str2 += chr(ord(i) + 32)else:# print(chr(ord(i) - 32))str2 += chr(ord(i) - 32)
print(str2, str2 == 'ABCabc')

字符串A + 空字符串 等于 字符串A本身

print('abc' == 'abc' + '' * 1000)

04-大小写转换方法

lower:将字符串转小写
upper:将字符串转大写

str1 = 'abcABC'
print(str1.lower())
print(str1.upper())

str2 = ‘abc123abc’
#title:将字符串中所有的单词(人工智障)首字母转大写

print(str2.title())

capitalize():如果字符串第一个符号是小写字母,将其转大写。

str2.capitalize()

https://www.nshth.com/bcbj/848.html
>

相关文章:

  • 黑马程序员Python快速编程入门
  • java冒泡排序从大到小
  • 冒泡排序c代码
  • 小灰的算法之旅python篇
  • c语言数组冒泡排序
  • python小白到大牛
  • python 冒泡排序
  • 2019千峰python
  • pdf翻譯網站,1 Trillion Dollar Refund – How To Spoof PDF Signatures——欺騙PDF簽名
  • 如何創建一個抽象類,創建具體的產品,并繼承產品抽象類
  • 主從庫理論知識-主從同步如何實現?
  • Tomcat環境變量配置,Mybatis的配置文件參數詳解
  • I Am You,POJ 3130 How I Mathematician Wonder What You Are! 半平面交
  • 要學vue需要學什么基礎知識,第一章 Vue基礎入門
  • win7下安裝win10,win10下安裝Ubuntu18.10雙系統
  • vmplayer怎么使用烏邦圖,烏邦圖環境安裝
  • 計算機專業要不要考研——寫的很棒
  • redisson看門狗原理,記錄一次redis漏洞攻擊
  • 任意波形發生器,基于單片機信號波形發生器系統設計-畢設課設
  • 嵌入式驅動,嵌入式Linux驅動大全問世,十年磨一劍,視頻!服務!新老客戶都有大折扣!
  • socket連接器v2下載,Netty(一)基礎socketchannel,Buffer,selector黏包 半包解決 實戰
  • 大一c語言程序設計筆記,吉林大學2013級大一下學期程序設計作業:同學通訊錄系統
  • 暑期小學生計算機培訓班,青島小學生學習編程暑假
  • 熊貓毛小喵喵去哪里了,小西貝、何小喵看熊貓之觀察者設計模式
  • 如何用c語言比較兩個數的大小,如何用C語言求兩個數的較大值
  • 輾轉相除法求最小公倍數的方法,更相減損術--最大公約數
  • 輾轉相除法求最小公倍數的方法,如何求出兩個整數的最大公約數
  • 李新義的書畫藝術,中國現代書畫家——譚奇中、李義象、高俊鵬等
  • 海底撈張勇名言,致張勇先生一封信:海底撈的“七宗罪”!
  • WPF學習(12)動畫
  • ui自動化測試工具,移動端UI自動化之appium的使用(二)
  • 爬蟲網站,Search For Free —— 新聞爬蟲及爬取結果的查詢網站
  • tenda騰達無線設置,騰達F6路由器無線中繼功能設置
  • 斐波那契數列、小青蛙跳臺階
  • OJ每日一練——小青蛙上臺階
  • 小青蛙貝葉斯
  • 小青蛙走臺階問題
  • MySQL數據庫下載,NAVICAT FOR MYSQL存儲過程