R语言工作者入门python,你需要实际解决这三个问题
一、引言
关于python的一些背景知识,其相关的内容在网络上都可以找到很多补充,比如:python创始人的头发是所有编程语言创始人头发中最长的、python是现在最流行的编程语言、python很简单等等,我们直接切入主题,首先来解决第一个问题:
二、数据类型
笔者在刚接触python的时候,其实对数据类型并不是十分的注意,但是接受过一些报错的洗礼后,现在对于数据类型也是格外的注意,我们可以观察下面的代码:
#制作一个零钱转换器
#大致含义就是输入多少钱,输入成本,然后得到最后找零
#设计功能的思路其实可以简单分为三个步骤:获取输入数据→逻辑计算→输出结果
count = input("请输入成本:")
price = input("请输入价格:")
print("给你找零:" + (price - count))
#TypeError: unsupported operand type(s) for -: 'str' and 'str'
count = int(input("请输入成本:"))
price = int(input("请输入价格:"))
print("给你找零:" + str(price - count))
三、变量
内存 or 硬盘 or 浅拷贝 or 深拷贝
#R语言中
list01 = list("汉堡", "面条")
list02 = list01
list01[1] = "包子"
print(list02)
#python中
list01 = ["汉堡", "面条"]
list02 = list01
list01[0] = "包子"
print(list02)
#['包子', '面条']
#深拷贝
list01 = ["汉堡", "面条"]
list02 = list01
list04 = copy.deepcopy(list01)
#list04 = list01[:]
list01[0] = "包子"
print(list04)
四、容器
#首先是最常使用的容器——列表
#由一系列变量组成的可变序列容器
# 1. 创建
# 写法1:列表名 = [数据1,数据2]
# 姓名列表
list_names = ["悟空", "唐三藏", "八戒", "沙僧"]
# 年龄列表
list_ages = [26, 23, 25, 16]
# 写法2:列表名 = list(可迭代对象)
list_name = list("孙悟空")
print(list_name) # ['孙', '悟', '空']
# 2. 添加
# -- 追加:列表名.append(数据)
list_names.append("小白龙")
# -- 插入: 列表名.insert(索引,数据)
list_names.insert(2, "哪吒")
print(list_names) # ['悟空', '唐三藏', '哪吒', '八戒', '沙僧', '小白龙']
# 3. 定位
# -- 索引:容器名[整数]
# -- 读取
element = list_names[-1]
print(element) # 小白龙
# -- 修改
list_names[-1] = "二郎神"
print(list_names) # ['悟空', '唐三藏', '哪吒', '八戒', '沙僧', '二郎神']
# -- 切片:容器名[整数:整数:整数]
# -- 通过切片读取,创建新列表(拷贝)
names = list_names[:3]
print(names) # ['悟空', '唐三藏', '哪吒']
# -- 通过切片修改,遍历右侧数据,依次存入左侧.
list_names[:3] = ["空空", "唐唐", "猪猪"]
# list_names[:3] = 100 # 因为100不能被for
list_names[:3] = "孙悟空"
print(list_names) # ['孙', '悟', '空', '八戒', '沙僧', '二郎神']
# 4. 遍历:操作容器每个元素
# -- 方式1:for 元素 in 容器
# 适用性:从头到尾依次读取
for name in list_names:
print(name)
# -- 方式2:for 索引 in range(开始,结束,间隔):
# 适用性:非从头到尾依次读取
# len(list_names) - 1 是 最大索引(总数-1)
# -1 索引可以去到0
# -1 倒序
# 功能:倒序
for i in range(len(list_names) - 1, -1, -1):
print(list_names[i])
# 功能:修改
for i in range(len(list_names)):
# 文字长度是3的修改为None
if len(list_names[i]) == 3:
list_names[i] = None
print(list_names) # ['孙', '悟', '空', '八戒', '沙僧', None]
# 5. 删除
# -- 方式1:根据元素删除 列表名.remove(元素)
list_names.remove("八戒")
# -- 方式2:根据定位删除 del 容器名[索引或者切片]
del list_names[0]
del list_names[-2:]
print(list_names) # ['悟', '空']
# 1. 创建
# -- 元组名 = (元素1, 元素2, 元素3)
tuple01 = (10, 20, 30)
# -- 元组名 = tuple( 可迭代对象 )
list01 = ["a", "b", "c"]
tuple02 = tuple(list01)
# 2. 定位
# -- 读取(索引/切片)
print(tuple01[0]) # 10
print(tuple01[:2]) # (10, 20)
# 3. 遍历
for item in tuple01:
print(item)
for i in range(len(tuple01) - 1, -1, -1):
print(tuple01[i])
# 4. 特殊
# 注意1:小括号可以省略
tuple03 = 10, 20, 30
# 注意2:如果元组中只有一个元素,必须有逗号
tuple04 = (10,)
# 1. 创建
# -- { 键1:值1, 键2:值2 }
dict_wk = {"name": "悟空", "age": 25, "sex": "女"}
dict_xbl = {"name": "小白龙", "age": 23, "sex": "女"}
# -- dict( [( , ),( , )] )
# 列表转换为字典的格式要求:列表元素必须能够"一分为二"
list01 = ["八戒", ("ts", "唐僧"), [1001, "齐天大圣"]]
dict01 = dict(list01)
# 2. 添加 字典名[键] = 值
dict_wk["money"] = 100000
print(dict_wk) # {'name': '悟空', 'age': 25, 'sex': '女', 'money': 100000}
# 字典不能使用 索引 切片
# 3. 定位:字典名[键]
# -- 读取
print(dict_wk["name"])
# 注意:如果没有键则报错
# 解决:读取数据前,通过in判断.
if "money" in dict_wk:
print(dict_wk["money"])
# -- 修改(与添加数据语法相同)
# 具有key为修改,没有key为添加
dict_wk["name"] = "空空"
print(dict_wk) # {'name': '空空', 'age': 25, 'sex': '女', 'money': 100000}
# 4. 删除 del 字典名[键]
del dict_wk["sex"]
print(dict_wk) # {'name': '空空', 'age': 25, 'money': 100000}
# 5. 遍历
# 方式1:for 键 in 字典名称
for key in dict_wk:
print(key)
# 方式2:for 值 in 字典名称.values()
for value in dict_wk.values():
print(value)
# 方式3:for 键,值 in 字典名称.items()
for key,value in dict_wk.items():
print(key)
print(value)
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章