首页 > 编程语言 >python_base

python_base

时间:2024-03-13 11:22:05浏览次数:27  
标签:名片 name python age dic base print 字典

python基础

输入输出

print(self, *args, sep=' ', end='\n', file=None)

变量

image-20240219162321985

python中同一个字符串重复使用,分配的内存地址相同。

del 删除变量

image-20240219164016728

python可以直接交换变量的值,实际是交换变量的地址。

多个变量赋相同值对应相同地址,修改其中一个变量内容不影响其它变量的值。

标识符命名规则

严格区分大小写

组成:字母、数字、下划线

不能使用数字开头,也不能使用特殊符号等。

小驼峰(变量名、函数名、方法名):第一个单词小写开头,后续单词大写开头

大驼峰(类名):每个单词都是大写开头

下划线组合

数据类型

image-20240219170254949

字符串——单行|多行(三引号,结尾默认空一行换行)

type()查看变量类型

运算符

算数运算符

image-20240219172327150

赋值运算符

image-20240219172813880

身份运算符

image-20240219172955674

逻辑运算符的特殊性与运算结果

image-20240219173418552

image-20240220115118996

image-20240220115210637

image-20240220115458653

image-20240220115551956

类型转换

image-20240220144959419

image-20240220145447784

类型转换不能任意一步到位。

image-20240220155956373

字符串和整数可以使用,重复拼接相同的字符串

print("*!" * 10)

变量的格式化输出

输出文字信息的同时,一起输出变量中保存的数据,需要使用到变量的格式化操作符。

%被称为格式化操作符,专用于处理字符串中的格式,用于临时占位,等待后续的数据替换。不同类型的数据需要使用不同的格式化字符。

image-20240220160948027

%-string格式化语法

image-20240220161056689

image-20240220162328393

f-string格式化语法

python3.6开始加入的一种改进方法

image-20240220162736467

对于float类型变量显示对应位数

image-20240220162946499

使用round()函数来确定浮点数位数,不能超过原小数的有效位数。

name = "sunny"
age = 18
money = 100.01
# msg = "我是%s,今年%d岁,我每周有%.2f元零花钱。"%(name, age, money)
# msg = f"我是{name},今年{age}岁,我每周有{money}元零花钱。"
msg = f"我是{name},今年{age}岁,我每周有{round(money, 2)}元零花钱。"
print(msg)

image-20240220163335899

转义字符

image-20240221141537629

列表

image-20240221145126136

切片

image-20240221154034659

image-20240221154127721

列表遍历

遍历就是依次从列表容器中取出每一个元素,并执行相同的操作。

while遍历

image-20240221154347679

i = 0
while i < len(scores):
    nums = scores[i]
    print(num)
    i += 1

for遍历(专用)

image-20240221154528162

for循环语句定义的变量可以在后续全局使用。

scores = [30, 40, 50, 60]
for num in scores:
    print(num)
for i, b in enumerate(a)

同时对i,b两个变量同时赋值,i赋值为a当前元素的下标,b赋值为a当前的元素。

while和for的区别

1.for只能通过从头到尾依次从列表中取出每一个元素,执行效率高。

2.while可以控制索引灵活地从列表中取出元素

列表生成式

even_nums = [num for num in range(1,101) if num % 2 == 0]
print(even_nums)

extend()逐个元素添加

extend() 不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中

image-20240221155038627

元组

除了不能够修改里面的元素外,其他的操作和列表一样。

tuple特殊用法

给多个变量赋值

将元组中的值一一赋值给对应的变量。

info = ('sunny', 'boy', 17)
name, sex, age = info
print(f'姓名:{name}性别:{sex}年龄:{age}')

定义单元素元组

#方法一:类型转换
b = tuple([10])
#方法二:加逗号
c = (15,)

列表和元组之间的转换

image-20240221160119535

应用场景

image-20240221155432955

拓展题

1.需求:有三个店铺,6个商品,6个商品随机分配到3个店铺

image-20240221163401936

image-20240221165140448

import random
shopList = [[], [], []]
goodsList = ['小米', '苹果', 'vivo', '华为', 'Oppo', 'Lenovo']

for good in goodsList:
    idx = random.randint(0, 2)
    shopList[idx].append(good)
    print(idx, shopList[idx])
print(shopList)

2.有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数。

cnt = 0

for a in range(1, 5):
    for b in range(1, 5):
        for c in range(1, 5):
            if a != b and a != c and b != c:
                cnt += 1
                
print(cnt)
#24

3.image-20240221170047593

image-20240221173814869

nums = [
    [255, 255, 255, 255],
    [255, 255, 255, 255],
    [0, 255, 0, 255]
]

# 255的总个数
cnt = 0
# 全为255的行数
row = 0
remove_nums = []
for idx, num in enumerate(nums):
    res = num.count(255)
    cnt += res
    if res == len(num):
        print(f'第{idx}行全为255')
        remove_nums.append(num)
        row += 1
    # 循环遍历同时删除,索引出错,内部迭代器不同步
    # nums.pop(idx)
print(cnt, row)

# 同时删除多个索引的值
#按索引反向删除
for i in remove_nums:
    nums.remove(i)
    print(nums)

字符串

字符串指里面存储字符类型的不可变的序列容器。

不可变:指字符串一旦定义,其内存地址就已经确定不能改变。

转义字符特殊用法

image-20240222144905353

image-20240222144941733

字符串内容操作

索引访问字符、切片取出部分字符

image-20240222145152074

str1 = "床前明月光"
print(str1[0:5:2])

while遍历字符

image-20240222145545583

for in 专业遍历

for只能通过从头到尾依次从字符串中取出每一个字符并执行相同的操作。

image-20240222145650786

字符串函数速查

判断

image-20240222145812424

查找和替换

image-20240222145829284

大小写转换

image-20240222145849384

拆分和连接

image-20240222145908514

去除空白字符

image-20240222145927270

字符串常见操作

去除左右两边空格

image-20240222150035722

字符串分割(重点)

image-20240222150122407

image-20240222150142511

大小写转换

image-20240222150215510

判断开头或者结尾的字符

image-20240222150250906

字符串格式化函数

image-20240222150342630

字符串连接

image-20240222150414290

字符串替换

image-20240222150440100

判断字符串由数字组成

image-20240222150501761

字典

列表中的数据更多偏向的物理意义是可序列的,但是在实际的生活案例处理中,很多数据并不需要序列 的逻辑,更多的是偏向映射关系。

比如说,姓名是什么,职业是什么,分数是什么这种关系,如果用序列描述,必须严格限制他的先后关 系。

这种映射关系,在python中采用字典的结构来描述他的逻辑关系。

字典(dictionary)同样是容器,只不过字典中的数据以映射关系来维护,这种映射关系x -> y,我们称x 为键,y为值。

image-20240222150706981

字典函数速查

image-20240222150757548

字典常用操作

"""
字典: {key : value}
常用操作:
增加
删除
修改
"""

dic = {'name': '球球', 'age': 19, 'sex': '女'}
print(dic)
# 添加
dic['addr'] = '四川'
print(dic)
# 删除
del dic['addr']
print(dic)
dic.pop('sex')
print(dic)
# 修改
dic['age'] = 20
print(dic)
# 查询 键对应的值
print(dic['age'])
# 获取字典的键值
print(dic.keys())
for key in dic.keys():
    print(f'{key}:{dic[key]}', end=' ')
# 获取字典中的所有值
print()
print(dic.values())
print(type(dic.values()))
for value in dic.values():
    print(value, end=' ')
# 遍历键值对
print('遍历键值对')
for key, value in dic.items():
    print(key, ":", value, end=' ')
print()
# 判断键值是否在字典中存在
print('name' in dic)
# 清空字典
dic.clear()

集合

集合(set)是一个无序的不重复元素序列(容器)。

可以使用大括号 { } 或者 set() 函数创建集合。

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是 用来创建一个空字典。

image-20240222151713976

其他类型(字符串、列表、字典)转换为集合

image-20240222151820361

image-20240222151917752

将字典的所有键转换为集合,键是唯一的不重复。

公共语法

python内置函数

image-20240222152054387

切片

image-20240222152116385

运算符

image-20240222152134769

+为合并运算符

image-20240222152201110

image-20240222152215296

*为重复运算符

image-20240222152304322

in为判断是否存在运算符

image-20240222152330601

not in 为判断是否不存在运算符

image-20240222152403363

for专业遍历

image-20240222152443200

image-20240222152703374

课后练习

#名片管理系统

"""
名片管理 系统 录入三张名片即可
名片盒子 列表中存放字典,为什么要这样存放?为什么不是字典中存放列表?
cards = [
 {"name": "张三", "tel": "13812345678", "job": "CEO", "addr": "四川"}, # 字典
 {'名片信息2'},
 {'名片信息3'}
]
需要完成的功能 就是对 名片盒子 进行增删改查
1. 添加名片: 根据用户录入的信息, 组装成字典 追加到名片盒子里面 cards.append(一个人的名片字典)
2. 显示所有名片: 遍历名片盒子输出名片信息
3. 修改名片: 录入需要修改名片的姓名, 根据名字到名片合子查找对应的哪一张名片,
如果找到 , 重写录入新的名片信息, 完成修改操作
print('1' not in '123456') # False
print(2 not in [1, 2, 3, 4]) # False
print(2 not in (1, 2, 3, 4)) # False
print('name' not in {'name': '球球'}) # False
print('球球' not in {'name': '球球'}) # True
4. 删除名片: 录入需要删除名片的姓名, 根据名字到名片盒子中查到对应的名片并删除.
"""

image-20240222185548858

name = " posekakaka "
name = name.strip()
print(name)
print(name.startswith("po"))
print(name.endswith("a"))
# name = name.replace("k", "c")
print(type(name.split("k")))
name = name.split("k")
print(name)

image-20240222185730425

students = [
    {'name': 'Tom', 'age': 19, 'score': 92, 'sex': '女', 'tel': '15300022839'},
    {'name': 'Jerry', 'age': 20, 'score': 40, 'sex': '男', 'tel': '15300022838'},
    {'name': 'Andy', 'age': 18, 'score': 85, 'sex': '女', 'tel': '15300022837'},
    {'name': 'Jack', 'age': 16, 'score': 65, 'sex': '男', 'tel': '15300022428'},
    {'name': 'Rose', 'age': 17, 'score': 59, 'sex': '男', 'tel': '15300022653'},
    {'name': 'Bob', 'age': 18, 'score': 78, 'sex': '男', 'tel': '15300022867'}
]

fall_student = 0
sum_score = 0
cnt = 0

for student in students:
    cnt += 1
    sum_score += student["score"]
    print(student["name"])
    if student["score"] < 60:
        fall_student += 1
    if student["sex"] == "男":
        print(student)
print(f"average_score={sum_score/cnt}")

拓展题

image-20240222190539684

#方法一
letters = 'abcdabcdabcdabcefg'
# 将目标字符串转为列表
letters_list = list(letters)
print(letters_list)
# 用一个列表记录出现的每一种字符
new_letters = []

for i in letters_list:
    if i not in new_letters:
        new_letters.append(i)

print("new_letters:{0}".format(new_letters))
# 用一个字典记录结果,遍历列表,求count()
d = {}

for i in new_letters:
    d[i] = letters_list.count(i)

print(d)

# 方法二:统计全部字符出现次数
from collections import Counter
print(Counter(letters))
# Counter({'a': 4, 'b': 4, 'c': 4, 'd': 3, 'e': 1, 'f': 1, 'g': 1})

image-20240222192004982

image-20240222192305097

image-20240222192311449

标签:名片,name,python,age,dic,base,print,字典
From: https://www.cnblogs.com/gccbb/p/18022730

相关文章

  • Python 爬虫零基础教程(1):爬单个图片
    代码:importrequestsurl='https://cdn.pixabay.com/photo/2018/01/04/07/59/salt-3060093_960_720.jpg'data=requests.get(url).contentf=open('1.jpg','wb')f.write(data)f.close()print('OK')解释代码变量代码中的ur......
  • 【python】生成对数正态分布样本并画出PDF和CDF图
    """CreatedonTueMar1222:09:092024@author:zhang"""importnumpyasnpfromscipyimportstatsimportmatplotlib.pyplotaspltmean,std=1,0.3sample_size=2000#logNormdistributionsamples=np.exp(stats.norm.rvs(me......
  • 从入门到入魔,100个Python实战项目练习(附答案)!
    大家好,我是彭涛。之前给大家整理的资料,都是理论性的,虽然每一个知识点都给出了对应的示例代码,但是好多人还是感觉有一点点杂乱,如果有系统的实战项目练习就好了。所以,应大家的需求,我们为大家搜集了一份Python从入门到进阶的实战案例合集,总共100个,70多页。资料内容不仅给......
  • Python 分析— 使用 LeuvenMapMatching 包进行地图匹配用于道路导航
        在道路导航中,我们有了街道网络地图。轨迹/GPS数据必须与街道相匹配才能进行导航,因为GPS读数提供纯粹的纬度和经度坐标,但我们想知道车辆行驶的具体道路。        我首先尝试了一种简单的方法来匹配点,将每个点独立地匹配到最近的路段。如果没有道路,只需......
  • 20个Python random模块的代码示例
    本文分享自华为云社区《Python随机数探秘:深入解析random模块的神奇之处》,作者:柠檬味拥抱。标准库random函数大全:探索Python中的随机数生成随机数在计算机科学和数据科学领域中扮演着重要角色,Python的标准库中提供了random模块,用于生成各种随机数。本篇博客将深入探讨random模块......
  • python软件安装
    WelcometoPython.org一:打开这个网址(如下图所示)二:点击下方图标将会跳转到下面这个页面三:将页面翻到下图位置随便选择一个版本下载即可(尽量选择低于最新版本的几个版本)四:安装这个软件在cmd里面,输入python,出来这个结果,即为安装成功......
  • 【算法训练营】最长公共子序列,倒水问题,奶牛吃草(Python实现)
    最长公共子序列时间限制:1sec空间限制:256MB问题描述给定两个1到n的排列A,B(即长度为n的序列,其中[1,n]之间的所有数都出现了恰好一次)。求它们的最长公共子序列长度。输入格式第一行一个整数n,意义见题目描述。第二行n个用空格隔开的正整数A[1],…,......
  • 【算法训练营】邓老师书,子序列,前缀(python实现)
    邓老师数时间限制:1sec空间限制:256MB问题描述众所周知,大于1的自然数中,除了1与其本身外不再有其他因数的数称作质数(素数)。对于大于1的不是质数的自然数,我们又称作合数。参加了邓老师算法训练营的小Z突发奇想,定义了新的数:所有合数中,除了1与其本身外,其他因......
  • Python爬虫实战系列1:博客园cnblogs热门新闻采集
    实战案例:博客园热门新闻采集一、分析页面打开博客园网址https://www.cnblogs.com/,点击【新闻】再点击【本周】本次采集,我们以页面新闻标题为案例来采集。这里可以看到标题“李彦宏:以后不会存在“程序员”这种职业了”。1.1、分析请求F12打开开发者模式,然后点击Network后点......
  • Python爬取免费IP代理时,无法解析到数据
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【ZXS】问了一个Python网络爬虫实战问题。问题如下:我这里遇到一个问题:【爬取免费IP代理时,无法解析到数据】,我通过xpath,css定位到了元素,但是在运行时返回空列表,请问我该怎么解决呀以下是解析数据的截图:他自......