Python学习01Python基础知识

举报
孙小北 发表于 2021/09/05 10:44:01 2021/09/05
【摘要】 AI 实战营Python 基础知识学习笔记:Print语法、关键字、字符串、列表、元组、字典 、集合、深拷贝和浅拷贝

Python基础知识

python介绍

  • Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计。
  • Python提供了高效的高级数据结构,还能简单有效地面向对象编程。
  • Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。
  • Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。
  • Python 也可用于可定制化软件中的扩展程序语言。
  • Python具有丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

基础知识

Print语法

#打印 Hello world 字样
print("Hello world")

str_hw = 'H U A W E I'
# 输出后自动换行
for i in str_hw:
    print (i)
# 输出后不换行继续输出下一个字符
for j in str_hw:
    print (j,end='')

注释

# 导入工具包
import sys  # 导入sys模块
print(sys.platform)  # 打印系统平台

# 多行注释
"""
这是多行注释
.....
"""

# 多行语句可以写在一起,但不推荐这种写法
print("语句1");print("语句2")

关键字

# 查看 Python 语法内置的关键字
import keyword
keyword.kwlist

变量命名


Name = "张三"
print(Name)

# 使用关键字作为变量名,则系统报错,显示无效语法
if = "张三"
print(if)

# 变量名以数字开头,则系统报错,显示无效语法
3Name = "张三"
print(3Name)

# 变量名中含有特殊字符,则系统报错,显示无效语法
Name$ = "张三"
print(Name$)

输入

# 接受一个标准输入数据,返回为 string 类型,按Enter键确认输入
s = input("请输入:")
print(s)
print(type(s))

# 查看传入对象的属性和方法。
dir(print)

help(print)  # 查看函数的帮助文档

数值(加减乘除)

print(True + False)   # 输出1,True默认为1,False为0   
print(True or False)  # 输出True,关键字or执行“或”操作
print(5 // 2)         # 输出2,//为取整运算符 
print(5%2)            # 输出1%为取余运算符  
print(3**2)           # 输出9**表示乘方操作 
print(5+1.6)          # 输出6.6,不同精度的类型的数字相加默认取高精度类型作为结果

字符串

  • 字符串是由Unicode码点组成的不可变序列
S = 'python'              # 给变量S赋值 python
# len(obj): 返回对象的长度
print(len(S))             # 输出6 
print(S[0], S[1], S[-1])  # 输出pyn ,按照索引获取元素
print(S + '1', S*2)       # 输出python1 pythonpython:合并和重复

S = 'python'
S[0] = 'Z'           # 程序异常

S1 = 'Z' + S[1:]     # 生成了新的字符串 zython,并赋值给S1
print("S : %s, S1 : %s"%(S, S1))   # 输出S:python,S1:zython

S = "python" # 变量赋值
# str.split(str="", num=-1):通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串,-1表示分割所有。

print(S.split('h')) # 输出[‘pyt’,’on’],根据h对字符串切割
# str.replace(old, new[, max]):返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

print(S.replace('py', 'PY')) # Python,将字符串中的py替换为PY
# print(S.islower()):判断字符串是否为小写,是则输出True,否则输出False

print(S.islower()) # 输出为True
# print(S.isupper()):判断字符串是否为大写,是则输出True,否则输出False

print(S.isupper()) # 输出为False
# str.upper():返回小写字符转化为大写后的值。

print(S.upper()) # PYTHON
# str.lower():返回大写字符转化为小写后的值。

print('PYTHON'.lower()) # python,字符串转小写
# str.join(sequence):sequence:要连接的序列,返回指定字符连接序列中元素后生成的新字符串。

print(''.join(['life', 'is' ,'short']))     # 输出life is short,join拼接字符串
hw12 = '%s %s %d' % ('hello', 'world', 12)  # 格式化字符串
print(hw12)              # 输出hello world 12

列表

  • 列表是一个功能强大的集合,用中括号表示。列表的数据类型可以不一样,可以列表中包含列表。
animals = ['cat', 'dog', 'monkey']
# list.append(obj):在列表末尾添加新的对象。

animals.append('fish') # 追加元素
print(animals)         # 输出 ['cat', 'dog', 'monkey', ‘fish’]
# list.remove(obj):移除列表中某个值的第一个匹配项。

animals.remove('fish') # 删除元素fish
print(animals)         # 输出 ['cat', 'dog', 'monkey']
# list.insert(index, obj):用于将指定对象插入列表的指定位置。index:插入位置

animals.insert(1,'fish') # 在下标1的地方插入元素fish
print(animals)           # 输出 ['cat', ‘fish’, 'dog', 'monkey']
# list.pop([index=-1]):要移除列表中对下标对应的元素(默认是最后一个)。Index:下标

animals.pop(1) # 删除下标为1的元素
print(animals) # 输出 ['cat', 'dog', 'monkey']
#遍历并获取元素和对应索引  
# enumerate(sequence) :将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

for i in enumerate(animals): 
    print(i) # 元素下标和元素所组成的索引
#输出:(0, cat)
# (1, dog)
# (2, monkey)
#列表推导式
squares = [x*2 for x in animals] # 批量生成符合规则的元素组成的列表
print(squares) #['catcat ', 'dogdog ', 'monkeymonkey ']
list1 = [12, 45, 32, 55]
# list.sort(cmp=None, key=None, reverse=False):cmp为可选参数, 如果指定了该参数,会使用该参数的方法进行排序。key是用来进行比较的元素。reverse为排序规则,False为升序。

list1.sort() # 对列表进行排序
print(list1) # 输出[12, 32, 45, 55]
# list.reverse():反向列表中元素。
list1.reverse() # 对列表进行逆置
print(list1) # 输出[55, 45, 32, 12]

元组

T=(1, 2, 3) #创建元组
print(T + (4, 5))  #元组合并,输出:(1, 2, 3, 4, 5)
t=(42, )           #只有一个元素的元组,区别于数字
tuple1 = (12, 45, 32, 55, [1, 0, 3]) # 创建元祖
tuple1[0] = "good"    # 程序异常,元组的不可变性

tuple1[4][0] = 2      # 元组中可变的元素是可以变得
print(tuple1)         # (12, 45, 32, 55, [2, 0, 3])

字典

  • 字典是数据的无序集合,用于存储数据值。与其他仅将单个值作为项的数据类型不同,字典具有键-值对
  • 字典中的键和值之间用冒号“:”分隔,而键-值对之间用逗号“,”分隔,所有键-值对用花括号“{}”括起来
# 字典的三种赋值操作
x = {'food':'Spam', 'quantity':4, 'color':'pink'}
X =dict(food='Spam', quantity=4, color='pink')
x = dict([("food", "Spam"),("b", "2"), ("color", "pink")])

# dict.copy():拷贝数据
d =x.copy()
d['color'] = 'red'
print(x) # {'food':'Spam','quantity':4,'color':'pink'} 
print(d) # {'food':'Spam','quantity':4,'color':'red'}

#元素访问
print(d.get('name'))  # 输出None
print(d.get('name', '键值不存在!')) # 输出 键值不存在
print(d.keys())    # 输出dict_keys(['food', 'quantity', 'color'])
print(d.values())  # 输出dict_values(['Spam', 4, 'pink'])
print(d.items())   

# 输出 dict_items([('food', 'Spam'), ('quantity', 4), ('color', 'pink')])
d.clear() # 清空字典中的所有数据
print(d)  # 输出 {}
del(d)    # 删除字典
print(d)  # 程序异常,提示“d”未定义

集合

  • 集合是一个无序的不重复元素序列。它是可迭代的,没有重复元素(每个元素都是唯一的)的
sample_set = {'Prince', 'Techs'}
print('Data' in sample_set) # 输出False,in的作用是检查集合中是否存在某一元素

# set.add(obj):给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
sample_set.add('Data') # 向集合中增加元素Data
print(sample_set)      # 输出 {'Prince', 'Techs', 'Data'}
print(len(sample_set)) # 输出3 len() 函数返回集合元素个数

# set.remove(obj):移除集合中的指定元素。
sample_set.remove('Data') # 删除元素Data  
print(sample_set)         # {'Prince', 'Techs'}
list2 = [1, 3, 1, 5, 3]
print(list(set(list2)))   # 输出 [1,3,5],利用集合元素的唯一性进行列表去重
sample_set = frozenset(sample_set) # 不可变集合 frozenset()函数返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

深拷贝和浅拷贝

  • 深拷贝是把要拷贝的对象整体复制一份,存在新开辟的空间里
  • 浅拷贝指的是,对于要拷贝的对象要复制一份,但是对于其内部的子对象就不复制了,而是直接引用,也就是类似于添加了一个链接而已
import copy
Dict1 = { 'name':'lee', 'age':89, 'num':[1,2,8]} # 新建字典
Dict_copy = Dict1.copy()          # 浅拷贝
Dict_dcopy = copy.deepcopy(Dict1) # 深拷贝
Dict1['num'][1] = 6               # 修改原数据中嵌套列表的值
print('Dict1:' + str(Dict1), ' Dict_copy:' +str(Dict_copy),' Dict_dcopy:' + str(Dict_dcopy))

# 'str' object is not callable
# 前面定义了str变量

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。