IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 2021-08-09 Python基础知识Day06 -> 正文阅读

[Python知识库]2021-08-09 Python基础知识Day06

表格数据用字典和列表表示,并实现访问

在这里插入图片描述

r1={'name':'高小一','age':18,'salary':30000,'city':'北京'}
r2={'name':'高小二','age':19,'salary':20000,'city':'上海'}
r3={'name':'高小五','age':20,'salary':10000,'city':'深圳'}

tb=[r1,r2,r3]

#打印高小二的薪资
print(tb[1].get('salary'))

#打印所有人的薪资
for i in range(len(tb)):
	print(tb[i].get('salary'))

#打印表的所有数据
for i in range(len(tb)):
	print(tb[i].get('name'),tb[i].get('age'),tb[i].get('salary'),tb[i].get('city'))

在这里插入图片描述

字典对象的核心是散列表
集合
  • 使用{}创建集合对象,使用.add()添加元素到首部
  • 使用set()函数可以把列表、元组等可迭代对象转换成集合,若有重复元素则只保留一个;
  • .remove()删除指定元素,clear()清空整个集合
  • 集合操作:并集、交集、差集
>>> a = {1,3,'sxt'}
>>> b = {'he','it','sxt'}
>>> a|b #并集
{1, 3, 'sxt', 'he', 'it'}
>>> a&b #交集 
{'sxt'}
>>> a-b #差集 
{1, 3}
>>> a.union(b) #并集 
{1, 3, 'sxt', 'he', 'it'}
>>> a.intersection(b) #交集 
{'sxt'}
>>> a.difference(b) #差集 
{1, 3}
控制语句
选择结构
  • 单分支
if 条件表达式:
	语句or语句块

if int(num)<10:
print(num)

多条语句,缩进必须对齐一致。

  • 双分支
if 条件表达式 :
语句 1/语句块 1 else:
语句 2/语句块 2

num = input("输入一个数字:") 
if int(num)<10:
	print(num) 
else:
	print("数字太大")

三元条件运算符:
条件为真时的值 if (条件表达式) else 条件为假时的值

num = input("请输入一个数字")
print( num if int(num)<10 else "数字太大")
  • 多分支
score = int(input("请输入分数")) 
grade = ''
if score<60 :
	grade = "不及格" 
elif score<80 :
	grade = "及格" 
elif score<90 :
	grade = "良好" 
elif score<=100:
	grade = "优秀" 

print("分数是{0},等级是{1}".format(score,grade))
选择结构的嵌套
  • 选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了 代码的从属关系。
score = int(input("请输入一个在 0-100 之间的数字:"))
grade = ""
if score>100 or score<0:
	score = int(input("输入错误!请重新输入一个在 0-100 之间的数字:"))
else:
	if score>=90:
    	grade = "A"
elif score>=80:
	grade = 'B'
elif score>=70:
	grade = 'C'
elif score>=60:
    grade = 'D'
else:
	grade = 'E'

 print("分数为{0},等级为{1}".format(score,grade))
循环结构
while循环
while 条件表达式:
	循环体语句
  • 【操作】利用 while 循环,计算 1-100 之间数字的累加和;计算 1-100 之间偶数的累加和, 计算 1-100 之间奇数的累加和。
num = 0
sum_all = 0 #1-100 所有数的累加和
sum_even = 0 #1-100 偶数的累加和 
sum_odd = 0 #1-100 奇数的累加和
while num<=100:
	sum_all += num
	if num%2==0:sum_even += num
	else:sum_odd += num
	num += 1 #迭代,改变条件表达式,使循环趋于结束

print("1-100 所有数的累加和",sum_all) print("1-100 偶数的累加和",sum_even) print("1-100 奇数的累加和",sum_odd)
for循环
for 变量 in 可迭代对象:
	循环体语句
  • Python可迭代对象:
  1. 序列。包含:字符串、列表、元组 2. 字典
  2. 迭代器对象(iterator)
  3. 生成器函数(generator)
  4. 文件对象
for x in (20,30,40):
	print(x*3)

#遍历字符串中的字符
for x in "sxt001":
	print(x)

#遍历字典
d = {'name':'gaoqi','age':18,'address':'西三旗 001 号楼'} 
for x in d: #遍历字典所有的 key
	print(x)
for x in d.keys():#遍历字典所有的 key
	print(x)
for x in d.values():#遍历字典所有的 value
	print(x)
for x in d.items():#遍历字典所有的"键值对" 
	print(x)
range对象
  • range 对象是一个迭代器对象,用来产生指定范围的数字序列。
  • 格式为: range(start, end [,step])
    生成的数值序列从 start 开始到 end 结束(不包含 end)。若没有填写 start,则默认从 0 开始。step 是可选的步长,默认为 1。
for i in range(10) 产生序列:0 1 2 3 4 5 6 7 8 9 
for i in range(3,10) 产生序列:3 4 5 6 7 8 9
for i in range(3,10,2) 产生序列:3 5 7 9
break语句
  • break 语句可用于 while 和 for 循环,用来结束整个循环
  • 当有嵌套循环时,break语句只能跳出最近一层的循环
continue语句
  • 结束本次循环,继续下一次循环
  • 当有嵌套循环时,continue语句也只能跳出最近一层的循环
循环代码优化

遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:

  1. 尽量减少循环内部不必要的计算
  2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
  3. 局部变量查询较快,尽量使用局部变量
  4. 连接多个字符串,使用 join()而不使用+
  5. 列表进行元素插入和删除,尽量在列表尾部操作
#循环代码优化测试
import time
start = time.time()

for i in range(1000):
    result = []
	for m in range(10000):
		result.append(i*1000+m*100)

end = time.time()
print("耗时:{0}".format((end-start)))

start2 = time.time()

for i in range(1000):
    result = []
	c = i*1000
	for m in range(10000):
		result.append(c+m*100)

end2 = time.time()
print("耗时:{0}".format((end2-start2)))
使用 zip()并行迭代
  • 我们可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。
names = ("高淇","高老二","高老三","高老四") ages = (18,16,20,25)
jobs = ("老师","程序员","公务员")
for name,age,job in zip(names,ages,jobs):
	print("{0}--{1}--{2}".format(name,age,job))

执行结果: 高淇–18–老师 高老二–16–程序员 高老三–20–公务员

列表推导式

列表推导式生成列表对象,语法如下:

  • [表达式 for item in 可迭代对象 ]
  • {表达式 for item in 可迭代对象 if 条件判断}
>>> [x for x in range(1,5)] 
[1, 2, 3, 4]

>>> [x*2 for x in range(1,5)] 
[2, 4, 6, 8]

>>> [x*2 for x in range(1,20) if x%5==0 ]
[10, 20, 30]

>>> [a for a in "abcdefg"]
['a', 'b', 'c', 'd', 'e', 'f', 'g']

>>> cells = [(row,col) for row in range(1,10) for col in range(1,10)]
>>> for cell in cells:print(cell)
(1, 1)
(1, 2)
(1, 3)
......省略
(9, 8)
(9, 9)
字典推导式

字典的推导式生成字典对象,格式如下:

  • {key_expression : value_expression for 表达式 in 可迭代对象}
统计文本中字符出现的次数:
>>> my_text = ' i love you, i love sxt, i love gaoqi'
>>> char_count = {c:my_text.count(c) for c in my_text}
>>> char_count
{' ': 9, 'i': 4, 'l': 3, 'o': 5, 'v': 3, 'e': 3, 'y': 1, 'u': 1, ',': 2, 's': 1, 'x': 1, 't': 1, 'g': 1, 'a': 1, 'q': 1}
集合推导式

集合推导式生成集合,和列表推导式的语法格式类似:

  • {表达式 for item in 可迭代对象 }
  • {表达式 for item in 可迭代对象 if 条件判断}
>>> {x for x in range(1,100) if x%9==0} 
{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}
生成器推导式

一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了。

>>> gnt = (x for x in range(1,100) if x%9==0)
>>> for x in gnt:
print(x,end=' ')
9 18 27 36 45 54 63 72 81 90 99 
>>> for x in gnt:
print(x,end=' ') 
>>>
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:22:40  更:2021-08-10 13:25:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 11:12:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码