目录
一、基础软件下载
pycharm下载+python 下载
(这个部分最大的问题就是python环境的运用了,在看教程之前因为自己先搜了搜。。。emmm。就自己下载了Anaconda,vscode,然后教程一出来,用的是pycharm,人傻了。结果就是导致python编译器貌似有好几个。pycham跟着教程设定的是用的python3.10(唉 也是个坑 安装到c盘了)然后用pip的时候发现用的3.8的python,目测是安anaconda时候安装的。不过运气好还能运行,但感觉,这几个坑可能已经埋好了。不知道啥时候会踩上0.0)
二、基础学习(只记录了一些自己需要注意的)
1.缩进
与c、m语言不同,用缩进来表示循环的嵌套层数..... 用end啥的结束不好么0.0 ,才开始看的时候真的头大。
2.注释 (写代码的好习惯)
与自己常用的m语言不同 单行注释为 # 快捷键为ctrl+/ 多行注释为 ''' 三引号
3.变量
和c 、m语言差不多,字符串的拼接可以用+来实现。
例如
x = "川川真"
y = "帅"
z = x + y
print(z)
全局变量的使用
x = "帅哥"
def myfunc():
global x
x = "菜鸟"
myfunc()
print("川川" + x)
在使用变量前,先提前用global声明一下下
练习题
#1
carname = '菜鸟'
#2
x = 60
#3
x = 5
y = 10
print(x+y)
#4
x = 8
y = 9
z =x+y
print(z)
5 数据类型
str 字符串 int 整形 float 浮点 complex 复数 bool 布尔(这几个是老盆友了)
list 列表 tuple 元组 range 范围型 dict 字典 set 集合 bytearry字节组(后面有具体讲解 这就只列出来了)
练习
1. int
2.字符串
3.浮点
4.x = ["apple", "banana", "cherry"]——————list(要点:注意是中括号)
5.x = ("apple", "banana", "cherry")——————tuple(要点:注意是小括号)
6 数字转化
int float complex random
练习
1.转浮点 float
2.转int int
3.转复数 complex
7 字符串
1)声明方法
常规使用方法 "a" 与 ’a‘一样
可以用3个引号将多行字符串进行分配
a = """从前有座山,
山里有座庙
庙里有个小和尚"""
print(a)
2)使用方法
首先需要注意的是:在python中,字符串其实是一个由字符组成的数组 。可以用索引对其中的字符进行调用。
如:a = "Hello, World!"
print(a[1])
检查字符串
txt = "The best things in life are free!"
print("free" in txt) #这里用到了 in 还有什么 for x in
#相似的也有 not in 这个是一个判断返回的是真和假 为布尔型
切片字符串
....emmm这个就很像用索引去调用表示么 但神器的地方在于
b = "Hello, World!"
print(b[2:5]) #输出居然为llo 对应的索引为2,3,4....这个该如何去理解..感觉用这个脑子会糊 #应该就是2到5不包含5 数学区间这样写:[2,5)
: 在python的所用使用中相当于省略号吧 省略中间的索引编号。 例如 [ 2 : ] (2到底 滑稽.jpg)
[:,10] 从开始到10
修改字符串
小写转大写 uppr
大写转小写 lower
strip 删除空格
replace 替换字符
format 进行传参
quantity = 20
itemno = 3000
price = 49.95
myorder = "川川今年 {}岁 买了个华为手机 {} 每个月花费 {} 元."
print(myorder.format(quantity, itemno, price))
练习题
#1
x = "Hello World"
print(len(x))
#2
txt = "Hello World"
x =txt[0]
print(x)
#3
txt = "Hello World"
x =txt[2:5]
print(x)
#4
txt = " Hello World "
print(txt.strip())
#5
txt = "Hello World"
x =txt.upper()
print(x)
#6
txt = "Hello World"
x =txt.lower()
print(x)
#7
txt = "Hello World"
x = txt.replace('H','J')
print(x)
#8
age = 36
txt = "My name is John, and I am {} "
print(txt.format(age))
8 布尔值
任意非空集和非0元素转布尔型都为真。
练习题
1)true 2)false 3)false 4)true 5)false
9 运算符
加减乘除:+ - * /
/正常除法为浮点型 //取整数 %取余
a =17/3
b = 17//3
c = 17%3
print(a,b,c)
5.666666666666667 5 2
** 幂运算
a=4**2
b=2**3
10 列表 list
创建方式
1)thislist = list(("apple", "banana", "cherry"))
2)mylist = ["川川一号", "川川二号", "川川三号"] (重点 中括号)
重点
1. List列表是一个有序且可变的集合。允许重复成员。
2, turple元组是一个有序且不可更改的集合。允许重复成员。
3. Set集合是一个无序且无索引的集合。没有重复的成员。
4. dict字典是一个有序且可变的集合。没有重复的成员。
! ! !从Python 3.7版开始,字典才是有序的! ! !
用索引调用时记得 : 的特点 [2:5] = [2:5) 右侧为一个开区间
insert插入
mylist = ["川川一号", "川川二号", "川川三号","川川四号"]
mylist.insert(2,'帅哥呀')
print(mylist)
extend 合并
mylist = ["川川一号", "川川二号", "川川三号","川川四号"]
mylist2=("川川","菜鸟")
mylist.extend(mylist2)
print(mylist)
remove 与 pop
remove为按内容删除指定元素 pop为按索引删除
mylist = ["川川一号", "川川二号", "川川三号","川川四号"]
mylist.remove('川川二号')
等于
mylist.pop(2)
clear 清除
列表推导式
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
练习
#1
fruits = ["apple", "banana", "cherry"]
print(fruits[1] )
#2
fruits = ["apple", "banana", "cherry"]
fruits[0] = 'kiwi'
print(fruits)
#3
fruits = ["apple", "banana", "cherry"]
fruits.append('orange')
print(fruits)
#4
fruits = ["apple", "banana", "cherry"]
fruits.insert(1,"lemon")
print(fruits)
#5
fruits = ["apple", "banana", "cherry"]
fruits.remove("banana")
print(fruits)
#6
fruits = ["apple", "banana", "cherry"]
print(fruits[-1])
#7
fruits = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(fruits[2:5])
#8
fruits = ["apple", "banana", "cherry"]
print(len(fruits))
11 元组
matlab里的元胞数组? 元组一旦创建便无法更改。 但可以通过
1.将其转化为list进行改变。
2.将另一个元组向元组添加
元组的声明 需要注意:1.小括号 2.元组中只有单一项目时要加上逗号如:(’啦啦啦‘,)
元组解包
就是提取元组中的项目
当变量数少于值的数目时,可以使用 *+变量名 将剩下的值作为列表分配给变量
fruits = ("apple", "banana", "cherry", "strawberry", "raspberry")
(green, yellow, *red) = fruits
print(green)
print(yellow)
print(red)
元组可以通过+号合并
count 函数可以用来记录某个元素的出现次数
index 可以找出元素的索引
thistuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5)
x = thistuple.count(5)
x = thistuple.index(8)
练习
#1
fruits = ("apple", "banana", "cherry")
print (fruits[0])
#2
fruits = ("apple", "banana", "cherry")
print (len(fruits))
#3
fruits = ("apple", "banana", "cherry")
print (fruits[-1])
#4
fruits = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(fruits[2:5])
12 集合
基本使用方法相同 集合中的值不能重复
添加集合
update 一项的话可以用add
myset = {"川川一号", "川川二号", "川川三号"}
myset1 = {"川川一号", "川川二号", "川川三号",'川川菜鸟'}
myset.update(myset1)
print(myset)
移除集合
remove、discade 根据移除某一项
pop根据索引移除某一项 默认为最后一项
集合连接
update 与 union都可以做到 但不同点在于
a.update(b)是将b插入到a中a 的值发生了改变, 而 c = a.union(b)是用一个新的变量来获得这个连接上的集合
a.intersection_update(b) 仅保留交集 改变了a 因为用上了update(更新)
c = a.intersection(b) 这个就能赋值了
a.symmetric_difference_update(b) 求不同的元素
a.symmetric_difference(b)
练习
#1
fruits = {"apple", "banana", "cherry"}
if "apple" in fruits:
print("Yes, apple is a fruit!")
#2
fruits = {"apple", "banana", "cherry"}
fruits.add('orange')
print(fruits)
#3
fruits = {"apple", "banana", "cherry"}
more_fruits = ["orange", "mango", "grapes"]
fruits.update(more_fruits)
print(fruits)
#4
fruits = {"apple", "banana", "cherry"}
fruits.remove('banana')
print(fruits)
#5
fruits = {"apple", "banana", "cherry"}
fruits.discard('banana')
print(fruits)
13 字典
由 键 和 值 构成,用大括号写 有序 可变,但不可重复
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(thisdict)
字典的访问
thisdict = {
"name": "川川",
"address": "上海",
"year": 2000
}
x = thisdict["name"]
y=thisdict.get('name')
print(x)
print(y)
直接通过键调用 或者 用get
返回键值
x = thisdict.keys()
获取值
x = thisdict.values()
返回元组
更改字典的办法
直接调用进行 值更改 或 update
删除
使用pop删除指定的项目(值 和 键)
popitem()删除最后插入的项目
del 进行关键字的删除
遍历字典
thisdict = {
"name": "川川",
"address": "上海",
"year": 2000
}
for x in thisdict: #键名
print(x)
for x in thisdict:
print(thisdict[x]) #值
嵌套字典
myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
}
}
print(myfamily)
或者 先单独建立 再合并
child1 = {
"name" : "Emil",
"year" : 2004
}
child2 = {
"name" : "Tobias",
"year" : 2007
}
child3 = {
"name" : "Linus",
"year" : 2011
}
myfamily = {
"child1" : child1,
"child2" : child2,
"child3" : child3
}
print(myfamily)
练习
#1
from pyexpat import model
car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print (car.get('model'))
#2
car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
car['year'] = 2020
print (car.get('year'))
#3
car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
car['color'] = 'red'
print (car)
#4
car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
car.pop('model')
print (car)
#5
car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
car.clear()
print (car)
14 if else
常规用法
15 while
break 打破while大循环 continue打断本次循环
16 for 循环
break 打破while大循环 continue打断本次循环 pass 用于没有内容的for循环
17 函数
定义
def my_function():
print("Hello from a function")
注意缩进
参数数量
未知的参数数量可以用 *args 代替 args会成为一个收到的参数元组
def my_function(*kids):
print("川川帅哥 " + kids[2])
my_function("名字", "性别", "菜鸟")
默认参数值
def my_function(country = "Norway"):
print("I am from " + country)
my_function()
此时输出的为默认值Norway
18 lambda 匿名函数
x = lambda a : a + 10 ##不用去define 但是只能有一个表达式。 可以用于一些简单的公式中
print(x(5))
x = lambda a, b, c : a + b + c #x 公式名 abc传入变量 :后面表达式
print(x(5, 6, 2))