1.什么是变量? 变量是计算机内存中的一块区域,变量可以存储任何值,而且值可以改变。
2.变量的命名 变量名由字母、数字或下划线组成。而且,变量名不能由数字打
3.变量的赋值 每个变量在内存中创建,都包括变量的标识(id()函数来查看)、名称和数据。eg: x = 102 以上创建了一个变量名称为x,变量数据为102,还隐含有一个标量标识id(可通过id()函数查看)。 Python中给变量一次新的赋值,将创建一个新的变量。即使变量的名称相同,变量的标识并不相同。
系统函数演示如下:
# 演示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 21.字符串(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 boY2.数值类型 整数型、浮点型、布尔型(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 4while演示代码如下;
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)]