Python基础教程(学习笔记整理DAY1)

    技术2022-07-11  137

    文章目录

    变量常用系统函数运算符基本数据类型条件控制语句循环控制语句例题其余小知识点

    变量

    1.什么是变量? 变量是计算机内存中的一块区域,变量可以存储任何值,而且值可以改变。

    2.变量的命名 变量名由字母、数字或下划线组成。而且,变量名不能由数字打

    3.变量的赋值 每个变量在内存中创建,都包括变量的标识(id()函数来查看)、名称和数据。eg: x = 102 以上创建了一个变量名称为x,变量数据为102,还隐含有一个标量标识id(可通过id()函数查看)。 Python中给变量一次新的赋值,将创建一个新的变量。即使变量的名称相同,变量的标识并不相同。

    常用系统函数

    print() 输出函数input() 接收键盘输入,输入内容以字 符串形式返回len() 返回对象长度int() 将一个字符串或数字转换为整型str() 将对象转化为字符串type() 返回数据类型float() 将整数和字符串转换成浮点数

    系统函数演示如下:

    # 演示Python系统函数 print("Hello,Python!") # 打印(输出)函数 password = input("请输入你的密码:") # 等待输入,输入完成之前一直阻塞,会将输入的内容以字符串形式返回 print("您的密码是:"+password) print("Hello这个字符串的长度是:"+str(len("Hello"))) # 先用len()获取"Hello"的长度,再用str()转换为字符串 print("="*100) age = input("请输入你的年龄:") if int(age) >= 18: print("你是成年人了!") else: print("你还是未成年~~~")

    结果如下:

    请输入你的密码:123456 您的密码是:123456 Hello这个字符串的长度是:5 ==================================================================================================== 请输入你的年龄:20 你是成年人了!

    运算符

    算术运算符: + - * / %

    赋值运算符: = +=(加法赋值运算符) -= *= /=

    逻辑运算符 and or not

    比较运算符

    < == <= >= !=

    演示如下:

    print(2==2) print(3<2) print((2==2)+(3<2)) # 布尔型参与运算时,True会转化为1;False会转化为0 print((2==2)+2))

    结果如下:

    True False 1 2

    基本数据类型

    1.字符串(str) 使用单引号、双引号、三引号(可以跨行创建字符串)都可以来创建一个字符串 字符串乘法 拼接字符串(使用拼接符号’+’) 字符串切片(slice) 字符串常用方法 title()、upper()、lower()、lstrip()、rstrip()、strip()

    代码演示如下:

    ''' 这个文件是用来演示字符串操作的 大家加油 好好学习,天天向上! ''' language = 'Python' # 单引号引起来的字符串 country = "China" # 双引号引起来的字符串 color = '''green''' # 三引号引起的字符串 print("语言——"+language) print("国家——"+country) print("颜色——"+color) print('tom said:"he is going to have lunch!"') print('''tom said:"he is going to have lunch!"''') s = "hello" print("索引为1的字符:"+s[1]) print("索引为-2的字符:"+s[-2]) print("截取字符串:"+s[1:4]) # 截取索引1(包括)到索引4(不包括)的字符串 print("从1开始截取到末尾:"+s[1:]) print("="*50) greeting = " heLLo boY " print("将字符串每个单词的首字母大写,并将其他字母变为小写:"+greeting.title()) print("upper():"+greeting.upper()) print("lower():"+greeting.lower()) print("去掉左边的空格:"+greeting.lstrip()) print("去掉右边的空格:"+greeting.rstrip()) print("去掉两边的空格:"+greeting.strip()) print("greeting变量还是原来的:"+greeting)

    结果如下:

    语言——Python 国家——China 颜色——green tom said:"he is going to have lunch!" tom said:"he is going to have lunch!" 索引为1的字符:e 索引为-2的字符:l 截取字符串:ell 从1开始截取到末尾:ello ================================================== 将字符串每个单词的首字母大写,并将其他字母变为小写: Hello Boy upper(): HELLO BOY lower(): hello boy 去掉左边的空格:heLLo boY 去掉右边的空格: heLLo boY 去掉两边的空格:heLLo boY greeting变量还是原来的: heLLo boY

    2.数值类型 整数型、浮点型、布尔型(True——1、False——0)

    3列表(list) 列表由一系列按特定顺序排列的元素组成。 在Python中,用方括号[]来表示列表,并用逗号来分隔其中的元素。可以将任意元素加入到列表中。

    访问列表中的元素 通过元素的索引位置来访问列表元素。 注意:索引位置从0开始。Python也为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,即可让Python返回最后一个列表元素。在列表末尾追加元素 通过列表的append()方法将元素添加到列表末尾在列表中插入元素 通过列表的insert(索引位置,插入元素)方法在列表的指定位置插入元素

    代码演示如下:

    fruits = ["banana","orange","watermelon","apple",] # 创建列表 print(fruits[1]) print(fruits[-3]) print(fruits[1:3]) # 返回列表中索引1(包括)到3(不包括)的元素 fruits[1] = "橘子" # 可以修改列表中的某些元素,索引列表是可变的对象 print(fruits) fruits.append("pear") # append()方法用来追加数据,方法是针对于对象来说的 fruits.append("火龙果") print("现在的列表:") print(fruits) fruits.insert(1,"辣椒") # 在索引为1的位置插入"辣椒" print(fruits)

    结果如下:

    orange orange ['orange', 'watermelon'] ['banana', '橘子', 'watermelon', 'apple'] 现在的列表: ['banana', '橘子', 'watermelon', 'apple', 'pear', '火龙果'] ['banana', '辣椒', '橘子', 'watermelon', 'apple', 'pear', '火龙果']

    4元组(tuple) 元组与列表类似,也可以存储任意类型元素。但元组与列表的主要区别在于元组一旦创建就不能再做改动了。 很多时候不希望处理过程修改对象内容,这时就需要用到元组的不可变性。

    元祖的创建:使用圆括号( )创建

    使用圆括号将有序元素括起来,并用逗号隔开,可以创建元组。注意,这里的逗号是必须存在的,尤其是当元组只有一个元素的时候,后面必须添加逗号。 注意:在Python中定义元组的关键是其中的逗号,圆括号却可以省略。 eg: mytuple1 = (‘apple’,’banana’,’orange’) mytuple2 = ‘apple’,’banana’,’orange’

    元组索引访问提取

    元组切片操作提取

    元组解包 将元组中的各个元素赋值给多个不同变量的操作通常称为元组解包,使用格式为obj_1,obj_2,…obj_n=tuple。

    代码如下:

    mytuple = ("手机",) # 当元祖中只有一个元素时,必须要加逗号 print(type(mytuple)) days = ("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday") print(days[2]) print(days[2:]) # days[2] = "two" 不能修改元祖,因为元祖是不可变元素 colors = ("red","green","blue") a,b,c = colors # 元祖解包 print(a,b,c) x,y,z = "Chinese","Math","English" # 也是元祖解包 print(x,y,z) temp = "Chinese","Math","English" # 这也是创建元祖 print(type(temp))

    结果如下:

    <class 'tuple'> Wednesday ('Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday') red green blue Chinese Math English <class 'tuple'> 字典 在Python中,字典是一系列键-值(key-value)对。每个键都与一个值关联,与键关联的值可以是任何对象。 字典使用花括号标识。 ​ 使用花括号{ }创建字典 ​ 只要将字典中的一系列键和值按键值对的格式(key:value,…)传入花括号{ }中,并以逗号将各键值对隔开,即可实现创建字典。 ​ 注意:键(key)在字典中不允许重复,如果key重复,则最后出现的key-value对会覆盖前面相同的key。访问字典中的值 通过字典名和键获取与该键对应的值。 eg: student = {‘name’:’zs’,’age’:20} print(student[‘name’])使用字典方法get D.get(k,[,d]) -> D[k] 参数k表示字典的键,参数d可以作为get()的返回值,参数d可以默认,默认值为None。添加键-值对 要添加键-值对,可依次指定字典名、用方括号括起的键和相关联的值。 eg: alien = {} alien[‘color’] = ‘green’修改字典中的值 要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。删除字典元素 可使用del语句将相应的键-值对彻底删除 使用pop语句删除字典元素D.pop(k,[,d]) -> v遍历所有的键-值对 for k,v in 字典名.items(): k变量与v变量分别代表正在遍历的键与值注意:参数k表示字典的key,如果字典D中存在索引k,则删除对应的键-值对,并且返回的v等于D[k];如果不存在索引k,则返回pop函数中第二个默认的值,如果没有默认值,则报错。

    代码演示如下:

    # 使用花括号创建一个字典 student = { "name":"tom", "age":20, "sex":"boy" } print(student["name"]) # 通过中括号查找key对应的value print(student.get("name")) # 通过调用字典的get()方法查找key对应的value # 先去查找名称为score的key,如果没找到,则返回get()方法的第二个参数 print(student.get("score","字典中没有这个key!")) student["score"] = 98.5 # 给字典添加一个key-value对 print(student) student["score"] = 60 # 如果已经存在该key,则会使用当前的value覆盖原来的value print(student) age_value = student.pop("age","如果没有这个key,就会删除失败!") # 删除可以为age对应的键值对,返回 print("删除的age键对应的value是:",age_value) print(student) del student["name"] # 使用del语句删除key为"name"对应的键值对 print(student)

    结果如下:

    tom tom 字典中没有这个key! {'name': 'tom', 'age': 20, 'sex': 'boy', 'score': 98.5} {'name': 'tom', 'age': 20, 'sex': 'boy', 'score': 60} 删除的age键对应的value是: 20 {'name': 'tom', 'sex': 'boy', 'score': 60} {'sex': 'boy', 'score': 60}

    6.集合 set是一个无序不重复的元素集合。 创建集合的方式:

    方式一: 使用花括号{ }创建集合,传入集合元素。 注意:传入的元素对象必须是不可变的,即不 能传入列表、字典等。 eg: myset = {‘A’,’X’,’W’,’Z’}方式二: 使用set()函数创建集合 注意:使用set()函数将可迭代对象转换为集 合。 eg: myset = set([‘apple’,’banana’,’orange’]) 函数名称函数说明set.add(x)往集合插入元素xset1.update(set2)把集合set2的元素添加到set1set.remove(x)删除集合中的元素xset.discard(x)删除指定元素,但是如果集合中没有的话就什么也不做set.pop()随机删除一个,并返回该值set.clear()清空set1.update(set2)把集合set2的元素添加到set1(元素可能重复)set1.union(set2)set1和set2的并集 (元素不重复)set1.intersection(set2)set1和set2的交集set1.difference(set2)set1和set2的差set1.issuperset(set2)判断set1是否是set2的超集set1.symmetric_difference(set2)set1和set2的对称补集

    代码演示如下:

    # 方式一(使用花括号创建集合) fruits = {"apple","apple","apple","banana"} # 集合会自动去重 print(fruits) # temp = {["apple","banana"]} # 使用{}创建集合时,不能传入可变对象 # 方式二(使用set()函数创建集合) other_fruits = set(["apple","banana"]) # 使用set()函数将可迭代对象转换为集合 print(other_fruits) print(type(other_fruits)) other_fruits.add("西瓜") # 给集合添加元素 print(other_fruits) print("随机弹出的元素是:",other_fruits.pop()) # 随机弹出一个元素 print(other_fruits)

    结果如下:

    {'banana', 'apple'} {'banana', 'apple'} <class 'set'> {'banana', 'apple', '西瓜'} 随机弹出的元素是: banana {'apple', '西瓜'}

    常见的集合运算

    并集: 由属于集合A或集合B的所有元素组成的集合,称为集合A和B的并集。在Python中可以使用符号“|”或者集合方法union方法来得出两个集合的并集。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cKlX9pBq-1593576204425)(C:\Users\Lenovo\Desktop\图片1.png)]

    交集: 同时属于集合A和B的元素组成的集合,称为集合A和B的交集。可以利用符号“&”或者集合方法intersection方法来获取两个集合对象的交集

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6qxJmA4H-1593576204427)(C:\Users\Lenovo\Desktop\图片2.png)]

    差集: 属于集合A而不属于集合B中的元素所构成的集合,称为集合A与集合B的差集。在Python中使用减号“-”来得到相应的差集,或者可以通过集合方法difference方法来实现。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFsaPxDI-1593576204433)(C:\Users\Lenovo\Desktop\图片3.png)]

    代码演示如下:

    tom_hobby = {"read","jog","sleep"} alice_hobby = {"jog","yoga","movie"} total_hobby = tom_hobby.union(alice_hobby) # 计算两个集合的并集 print("并集是:",total_hobby) print("并集是:",tom_hobby | alice_hobby) # | 操作符也可以计算集合的并集 common_hobby = tom_hobby.intersection(alice_hobby) # 计算两个集合的交集 print("交集是:",common_hobby) print("交集是:",tom_hobby & alice_hobby) # & 操作符也可以计算集合的交集 tom_alice = tom_hobby.difference(alice_hobby) # tom_hobby与alice_hobby的差集 print("tom独有的爱好(tom有而alice没有):",tom_alice) print("另一种方法:",tom_hobby-alice_hobby) alice_tom = alice_hobby.difference(tom_hobby) # alice_hobby与tom_hobby的差集 print("alice独有的爱好(alice有而tom没有):",alice_tom) print("另一种方法:",alice_hobby-tom_hobby)

    结果如下:

    并集是: {'movie', 'yoga', 'sleep', 'read', 'jog'} 并集是: {'movie', 'yoga', 'sleep', 'read', 'jog'} 交集是: {'jog'} 交集是: {'jog'} tom独有的爱好(tom有而alice没有): {'read', 'sleep'} 另一种方法: {'read', 'sleep'} alice独有的爱好(alice有而tom没有): {'movie', 'yoga'} 另一种方法: {'movie', 'yoga'}

    条件控制语句

    if/else语句

    (1)单分支

    格式: if 表达式: 语句序列

    功能:

    如果条件表达式的值为真,则执行后面的语句序列。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LNGofJCR-1593576204437)(C:\Users\Lenovo\Desktop\图片4.png)]

    ​ 2.(2)双分支

    ​ 格式: ​ if 表达式: ​ 语句序列1 ​ else: ​ 语句序列2

    ​ 功能:

    ​ 如果“条件表达式”的判断结果为真,则执行语句序列1;否则,执行语句序列2。

    ​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7F2FxUOg-1593576204440)(C:\Users\Lenovo\Desktop\图片5.png)]

    2.if…elif…else语句

    if/elif语句是if语句的扩展版本,它包含多个条件,用于作出复杂的决策。 思考下面问题: 假设航空公司提供了儿童优惠票价:不超过2岁的儿童免票;2-13岁的儿童打折;13岁及以上儿童与成人同价。

    代码演示如下:

    score = float(input("请输入你的成绩:")) if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 70: print("一般") elif score >= 60: print("及格") else: print("不及格,要加油!")

    结果如下:

    请输入你的成绩:96 优秀

    循环控制语句

    循环用于重复地执行代码块。 Python中有两种主要的循环:for循环和while循环。 for循环通常比while循环更容易使用,也不那么容易出错,但没有while循环灵活。

    for循环

    格式: for 变量 in 序列: …功能:每次从序列中取出一个值,并把值赋给变量。序列可以是元组、列表、字典、集合等数据结构。说明: for循环通常与range()函数一起使用,range()函数返回一个可迭代对象,for循环遍历列表中的元素。range()函数格式:range(start,stop[,step]),参数start表示列表开始值,默认为0;参数stop表示列表结束值,不能缺省,循环到stop-1停止;参数step表示步长,默认值为1。

    while循环

    格式: while 条件表达式: 语句序列

    功能:当条件表达式为真时,依次执行while中的语句,直到循环表达式的值为假。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJ87DycO-1593576204443)(C:\Users\Lenovo\Desktop\图片6.png)]

    3、for循环和while循环比较

    一般来说,固定次数的循环问题使用for循环和while循环都可以解决,而循环次数不固定的循环问题只能使用while循环解决。

    4、循环嵌套

    与条件语句相同,循环也可以嵌套。

    5、注意:break、continue用于循环结构

    break用于终止while循环或for循环; continue用于跳出本次循环。

    代码演示如下:

    fruits = ["apple","banana","orange"] print("遍历列表") for fruit in fruits: print(fruit) tom_hobby = {"read","jog","sleep"} print("遍历集合") for hobby in tom_hobby: print(hobby) student_dict = {"name":"tom","age":20,"sex":"boy"} print("遍历字典的key:") for key in student_dict: print(key) print("遍历字典的key-value键值对:") for k,v in student_dict.items(): print(k,'======>',v) print("range()与for循环搭配使用:") for i in range(3): print(i) print("="*10) for i in range(1,5): print(i)

    结果如下:

    遍历列表 apple banana orange 遍历集合 jog sleep read 遍历字典的key: name age sex 遍历字典的key-value键值对: name ======> tom age ======> 20 sex ======> boy range()与for循环搭配使用: 0 1 2 ========== 1 2 3 4

    while演示代码如下;

    i = 1 while i <= 10: print(i) i += 1 # 相当于 i = i + 1

    结果如下:

    1 2 3 4 5 6 7 8 9 10

    例题

    谁是小偷?

    警察局抓了a,b,c,d 4名偷窃嫌疑犯,其中只有一人是小偷。审问中,a说:“我不是小偷。”b说:“c是小偷。”c说:“小偷肯定是d。”d说“c在胡说。”

    代码如下:

    ''' 警察局抓了a,b,c,d 4名偷窃嫌疑犯, 其中只有一人是小偷。 审问中,a说:“我不是小偷。” b说:“c是小偷。” c说:“小偷肯定是d。” d说“c在胡说。” ''' for thief in ["a","b","c","d"]: total = (thief != "a") + (thief == "c") + (thief == "d") + (thief != "d") if total == 3: print("小偷是:"+thief)

    结果如下:

    小偷是:c

    其余小知识点

    ‘’‘ ’‘’三引号:跨行注释

    小细节:运算符两边各一个空格

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-akSwOtYX-1593576204447)(C:\Users\Lenovo\Desktop\IMG_20200630_190751.jpg)]

    4

    while演示代码如下;

    i = 1 while i <= 10: print(i) i += 1 # 相当于 i = i + 1

    结果如下:

    1 2 3 4 5 6 7 8 9 10

    # 例题 谁是小偷? 警察局抓了a,b,c,d 4名偷窃嫌疑犯,其中只有一人是小偷。审问中,a说:“我不是小偷。”b说:“c是小偷。”c说:“小偷肯定是d。”d说“c在胡说。” 代码如下: ``` ''' 警察局抓了a,b,c,d 4名偷窃嫌疑犯, 其中只有一人是小偷。 审问中,a说:“我不是小偷。” b说:“c是小偷。” c说:“小偷肯定是d。” d说“c在胡说。” ''' for thief in ["a","b","c","d"]: total = (thief != "a") + (thief == "c") + (thief == "d") + (thief != "d") if total == 3: print("小偷是:"+thief) ``` 结果如下:

    小偷是:c

    # 其余小知识点 ‘’‘ ’‘’三引号:跨行注释 小细节:运算符两边各一个空格 [外链图片转存中...(img-akSwOtYX-1593576204447)]
    Processed: 0.012, SQL: 9