1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python基础语法与数据类型的基本操作

Python基础语法与数据类型的基本操作

时间:2022-09-21 21:28:51

相关推荐

Python基础语法与数据类型的基本操作

一、Python简介

1.Python历史

Python正式诞生于1991年,作者是Guido van Rossum(龟叔)

Python的解释器如今有多个语言实现,我们常用的是CPython

Python版本:python2 python3

2.Python语言的起源

3.Python中的数据类型

特点:即拿即用,无需提前申明

强制类型转换:数据类型转换, 本身不发生类型转换

格式:需要转换的类型(变量名)

a = 10str(a) #将a转换成字符串类型

注:查看变量的类型------type函数

格式: type(变量名)

4.Python中的标识符与关键字

标识符: 程序员自己定义的一些符号. 比如 变量名与 函数名

关键字: 语言赋予了一些词语的特殊意义.

标识符命名规范:

1.由数字,字母下划线组成,并且数字不能开头

2.不能和关键字重合

3.见名知意

4.驼峰命名法:

大驼峰: 每一个单词的首字母大写 eg: SchoolName : 都是类

小驼峰: 第一个单词的首字母小写,其他的单词首字母大写 eg: schoolName: 变量名 函数名

5.通过下划线链接. linux 命名方式.

关键字:

'False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'

5.Python中的运算符

①算数运算符:+(加) , - (减) , *(乘) , ** (幂) , / (除) , // (整除) , % (取余) , ^ (异或) 没有++ , --

②关系运算符:> (大于) , < (小于) , >= (大于等于) , <= (小于等于) , == (等于) , != (不等于)

③赋值运算符: = (赋值) , += (a += b <==> a = a + b) , -=, *= ...

④逻辑运算符:and (与) , or (或) , not (非)

注:标红的地方是与C语言不同的地方。

同时给多个变量赋值a , b = 10, 20 # 给 a 赋值 10, 给 b 赋值 20 交换两个变量的值<1>. 三杯水交换a = 5 b = 10 c = a a = b b = c<2>. 不申请变量a = a + b b = a - ba = a - b <3>. 异或 : 异或与顺序无关, 异或连个相同的值为 0 a = a ^ bb = a ^ b a = a ^ b eg: 1 ^ 2 ^2 ^ 5 ^ 6 ^ 1 ^ 6 = 5延伸: 面试题: 单身狗 在数组中寻找只出现一个的哪个数字, 时间复杂度 O(n)python中交换两个变量的值: a , b = b, a

6.Python 第一个程序(hello world)

①环境:python3.6解释器 + pycharm 编辑器

②编写 hello world(仅需一行!)

# C语言"""#include <stdio.h>int main(){printf("hello world\n");return 0;}"""# pythonprint("hello world") # print是自动换行的

③执行hello world

右击 ==> run "hello world.py "

快捷键:ctrl + shift + F10

二、python的基础语法

1.注释

单行注释: # 后面的内容都是单行注释.

多行注释: 三引号之间的内容 就是多行注释 ; 快捷方式: ctrl + /

注: python 中单引号与双引号没有任何区别

2.输入输出语句

①输出:print

# 1.python变量直接输出 name = "懒羊羊"age = 5 print(name)# 2.格式化输出name = "懒羊羊"age = 5print("my name is %s, age is %d" %(name, age))# format函数输出name = "懒羊羊"age = 5print("my name is {}, age is {}".format(name, name))# 3.print在同一行输出 print(name, end="\n") # end 里面默认是"\n" 所有才可以换行 print(age)

②输入:input

格式:input("提示内容 :")

注:无论输入任何类型的数据,最终都会以字符串的形式展示.

password = input("please input your password >>> ")print(type(password))

3.判断语句

①if 语句:当条件condition满足的时候,会执行代码 code 的内容.

格式:if condition(条件):

(Tab) code(代码段)

②if / else语句:当条件condition满足的时候,执行code1, 当条件不满足的时候,执行code2.

格式:if condition:

code1

else:

code2

③if / elif / else语句

格式:if condition1:

code1

elseif condition2:

code2

......

elseif conditionn:

coden

else:

code

示例:

# 从键盘上输入考试成绩. 85 -- 100 A 75 -- 84 B 剩下的是 Cscore = int(input("请输入您的成绩 >>> "))if 85 <= score <= 100:print("A")elif score >= 75 and score < 85:print("B")else:print("C")

4.循环语句

目标: 只要符合条件,就完成某件事情, 直到条件不符合为止.

①while语句:一直执行code代码,直到 condition不满足的时候跳出循环

格式:while condition:

code

示例:

# 从键盘是输入一个数字, 判断一下它最少经过几步就可以变成一个斐波那契数字.f1 = 1 f2 = 1f3 = 0number = int(input("请输入数据 >>>"))while True:if number == f2:print("0")break elif number < f2: if abs(f2 - number) > abs(f1 - number):print(abs(f1 - number))else:print(abs(f2 - number)) break else:f3 = f1 + f2 f1 = f2f2 = f3

②for语句

格式:for 临时变量 in 字符串, 列表, 元组, 字典等可迭代的对象:

code

示例:

# 遍历数据mystr = "hello world"mylist = [1, 2, 3, 4, 5, 6]for i in mylist:print(i)

③break与continue

break:终止循环

continue:跳出本次循环

三、字符串 string

1.定义

字符串: 在引号之间的内容。 字符串是不可以被修改的.

如:mystr = "hello world"

2.字符串的访问

①下标:从左到右, 下标从0 开始

从右到左, 下标从-1 开始

如:mystr[0] 字符串中的第一个元素

mystr[-1] 字符串中的最后一个元素

②切片:访问原有数据当中的一部分数据内容.

格式:变量名[初始位置 : 终止位置 : 步长]

初始位置: 默认值 0

终止位置: 默认值 字符串的长度

步长 : 默认为 1

特点:左闭右开 [ )

# 练习题:s = 'Hello World!' #leetcode# 取出所有元素(没有起始位和结束位之分),默认步长为1print(s[::])# 从下标为1开始,取出 后面所有的元素(没有结束位)print(s[1::])# 从起始位置开始,取到 下标为5的前一个元素(不包括结束位本身)print(s[1:5:1])# 从起始位置开始,取到 倒数第一个元素(不包括结束位本身)print(s[:-1:1])# 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)print(s[-4:-1:1])# 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)print(s[1:5:2])# python 字符串快速逆置 从后向前,按步长为1进行取值print(s[::-1])

3.字符串的基本操作

①运算符家族

+ : 字符串的拼接

* : 字符串的复制

==: 比较两个字符串是否相等

len(): 计算字符串长度

示例:

src = "hello world hello python"src * 3 : 字符串复制src + src : 字符串拼接print(len(src))

②查询家族:在源字符串中, 查找子字符串的位置

find : 查找到: 返回子字符串在源字符串中的位置,查找不到: 返回-1

rfind : r(right): 从右向左查找子字符串的位置,查找到: 返回子字符串在源字符串中的位置. 查找不到: 返回-1

index : success: 原字符串中子字符串的下标,error: 报错

rindex : 从右往左查找. success: 原字符串中子字符串的下标,error: 报错

示例:

# 网络协议的判断src = "/"pos = src.find("://")# 判断协议if src[:pos] == "https":print("https 协议")else:print("其他协议")# 文件类型的判断src = "i.love.study.txt.cpp.so.php.c" # pos = src.rfind(".")pos = src.rindex(".1")if src[pos + 1:] == "c":print("c")

③转换家族:对字符串进行大小写的转换

upper : 将字符串中的小写字母,全部转换为大写字母.其他类型的数据不会进行任何改变

lower : 将字符串中的大写字母,全部转换为小写字母, 并且其他数据类型不会发生改变.

title : 将字符串中的每一个单词的首字母进行大写

示例:

# 小写转大写src = "hello world123"ret = src.upper()print("ret = ", ret)# 运行结果 ret = HELLO WORLD123# 大写转小写src = "HELLO WORLD123"ret = src.lower()print("ret = ", ret)# 运行结果 ret = hello world123# 首字母大写src = "hello world"ret = src.title()print("ret = ", ret)# 运行结果 ret = Hello World

④判断家族:对字符串进行判断. 返回值: bool (True or False)

startswith : 判断字符串是否以 子字符串 开始

endswith: 判断源字符串是否以子字符串结尾

isdigit : 判断字符串是否全部由数字组成

isalpha: 判断字符串是否全部由字母组成

isalnum : 判断字符串是否全部由数字或者字母组成

isspace: 判断字符串是否全部由空格组成

示例:

# 验证邮箱email = input("从键盘中输入需要注册的邮箱 >>> ")if email.startswith("zhangts") and email.endswith("@"): print("身份验证成功!!")else:print("身份验证失败!!")# 判断全数字src = "0123456789"if src.isdigit():print("字符串全部由数字组成")

⑤字符串分割:对字符串数据进行分割处理

split : 将源字符串按照子字符串的内容进行分割.并且子字符串不在分割内容内,返回值:列表

splitlines :将源字符串按照行来进行分割,返回值: 分割好数据的列表

partiton: 将原字符串 按照 子字符串分割成3部分,返回值: 元组

rpartition : 从右向左 将原字符串 按照 子字符串分割成3部分,返回值: 元组

示例:

# 将字符串按照 hello cpp 进行分割src = "hello python hello cpp hello c"ret = src.split("hello cpp")print(ret)# 运行结果 ['hello python ', ' hello c']# 将字符串按行进行分割src = "hello\npython\nhello\ncpp\nhello c"ret = src.splitlines()print(ret)# 运行结果 ['hello', 'python', 'hello', 'cpp', 'hello c']# 将原字符串按照python分割成3部分src = "hello world hello python hello cpp hello cc "ret = src.partition("python")print(ret)# 运行结果 ['hello world hello ', 'python', ' hello cpp hello cc ']

⑥孤儿家族

count : 统计在原字符串中,字字符串出现的次数.

join : 将列表中的字符串依次链接起来.

示例:

# 统计一下 hello 出现的次数src = "hello world hello python hello cpp hello cc "ret = src.count("hello")print("ret = ", ret)# 将hello与world中间用+连接l1 = ["hello", "world"]ret = "+".join(l1)print(ret)

四、列表 list

1.定义

列表可以看做容器,存放任意数据类型. [ int, bool, string, list, tuple , dict]

如:l1 = [100, "hello world", True, [1, 2, 3, 4, 5]]

2.访问

列表也是支持下标与切片的.

如:l1 = [100, "hello world", True, [1, 2, 3, 4, 5]]

print(l1[-1][2]) # 访问数字3

3.排序

练习:将上面的月份使用冒泡排序,从小到大排序

month = [1, 3, 5, 7, 8, 10, 12, 4, 6, 9, 11, 2]count = 0i = 0while i < len(month) - 1:j = 0flag = 0while j < len(month) - 1 - i:if month[j] > month[j + 1]:month[j], month[j + 1] = month[j + 1], month[j]flag = 1j += 1count += 1if flag == 0:breaki += 1print(count)

sort 接口:对列表进行排序处理.

示例:

month = [1, 3, 5, 7, 8, 10, 12, 4, 6, 9, 11, 2]month.sort(reverse=True)print(month)

4.列表数据的增删改查

①列表的增加

append : 将元素对象,尾部添加到列表中.

insert : 指定位置, 插入数据对象

extend : 将一个列表中的元素依次加入到另一个列表中 (尾部插入)

示例:

home = ["荀彧", "郭嘉", "司马懿"]home.append("典韦")home.insert(3, "夏侯惇")house = ["杨玉环", "武则天"]home.extend(house)print(home)#结果 ['荀彧', '郭嘉', '司马懿', '夏侯惇', '典韦', '杨玉环', '武则天']

②列表的修改

格式:列表[下标] = value

如:home[5] = "小乔"

③列表的删除

del : 根据列表的下标进行删除,如果忘记给出下标会删除整个变量.

pop : 根据下标进行删除,默认是从尾部删除

remove:根据列表中的值进行删除.

示例:

# 删除黄月英home = ['荀彧', '郭嘉', '司马懿', '夏侯惇', '典韦', '黄月英', '武则天']# del home[6]# home.pop(6)home.remove("黄月英")

④列表的查找

in : 是否在列表中,返回值: bool 类型

not in : 是否不在列表中,返回值: bool 类型

count : 统计列表中出现的指定元素的个数

示例:

house = ["杨玉环", "武则天", "上官婉儿","小乔","小乔","小乔"]print("貂蝉" in house) # Falseprint("貂蝉" not in house) # Trueprint(house.count("小乔")) # 3

五、元组 tuple

1.定义

元组也是一个容器. (int, float, tuple, list, dict , bool).元组内部的值是不可以修改的.

2.访问

元组也是支持下标与切片

3.查找

in : 是否在元组中,返回值: bool 类型

not in : 是否不在元组中,返回值: bool 类型

count : 统计元组中出现的指定元素的个数

示例:

house = ("杨玉环", "武则天", "上官婉儿","小乔","小乔","小乔")print("貂蝉" in house) # Falseprint("貂蝉" not in house) # Trueprint(house.count("小乔")) # 3

六、字典 dictionary

1.定义

使用 { }进行定义,里面以键值对儿存在的数据:info = { key : value, key1 : value1}

如:info = {"name": "野原新之助", "age": 5}

2.访问

①通过dict[key]访问

格式: dict[key]

注: 当key不存在的时候,访问会报错

②通过get函数访问

格式: dict.get(key)

注: 当 key 不存在的时候, 会返回 None

示例:

# 蜡笔小新info = {"name": "野原新之助", "age": 5}print("my name is {}, age is {}".format(info["name"], info["hobby"])) # 报错print("my name is {}, age is {}".format(info.get("name"), info.get("hobby")))

3.字典的增删改查

①字典的增加

格式: dic[new_key] = value

如:info["father"] = "幼儿园园长"

②字典的修改

格式: dic[old_key] = new_value

如:info["father"] = "野原广志"

③字典的删除(通过字典的 key进行删除)

格式: del dic[key]

如:del info["father"]

④字典的查找

keys: 返回字典中所有的键

values: 返回字典中所有的值

items: 返回字典中所有的键值对儿

如:for key, value in info.items():

print(key, value)

⑤清空字典(清空字典中的所有键值对儿)

格式:dic.clear()

如:info.clear()

拓展:集合

1.定义:{ } 里面存放的是字符串或者数字, 或者布尔类型.或者元组.

注:集合当中的值是无序的. 集合中的值没有重复元素.

2.集合的删除------pop(): 在集合中随机删除一个值.

本文到此基本结束了,下面的小练习检测一下学习成果,喜欢的我的博客可以点赞关注收藏一波,持续更新中...

数据类型综合练习题:dic={‘k1’:’v1’,’k2’:[‘alex’,’sb’],(1,2,3,4,5):{‘k3’:[‘2’,100,’wer’]}}1)将’k2’对应的值的最后面添加一个元素’23’。2)将’k2’对应的值的第一个位置插入一个元素’a’。3)将(1,2,3,4,5)对应的值添加一个键值对’k4’,’v4’。4)将(1,2,3,4,5)对应的值添加一个键值对(1,2,3),’ok’。5)将’k3’对应的值的’wer’更改为’qq’。答案:

dic={'k1':'v1','k2':['alex','sb'],(1,2,3,4,5):{'k3':['2',100,'wer']}}dic['k2'].append('23')dic['k2'].insert(0, 'a')dic[(1,2,3,4,5)].update(k4='v4')dic[(1,2,3,4,5)][(1,2,3)]="ok"dic[(1,2,3,4,5)]['k3'][-1]='qq'print(dic)"""运行结果 {'k1': 'v1', 'k2': ['a', 'alex', 'sb', '23'], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'qq'], 'k4': 'v4', (1, 2, 3): 'ok'}}"""

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。