从0到1 Python基础
文章目录
语法基础
-  变量:一个可以改变的量 (1) 变量的命名规则:变量由字母、数字与下划线组成;第一个字母必须是下划线或者字母;不能是关键字 (2)变量的声明:所有的变量都不需要声明,因为python会自动识别数据的类型 
-  常量:一个不改变值的量,其实也是变量一般用大写字母组成的名称表示 
-  查阅python的关键字 
import keyword
print(keyword.kwlist)
-  数据类型 - 数字 
    - 整数型
- 浮点型
- 复数complex(a,b)
- 布尔型(只有True和False)
 
- 字符串
- 列表
- 元组
- 字典
- 集合
 
- 数字 
    
-  运算符 -  算数运算符 优先级:乘、除 > 加、减 ; 取余与乘除优先级相同 。 
-  逻辑运算符 与 and 或 or 非 not 
-  身份运算符:判断两个变量的引用对象是否是同一个 a. is b. not is 
-  成员运算符:判断某个值是否存在于序列当中(列表、元组、字符串) a. in b. not in 
 
-  
-  类型转换 -  数字 -> 字符串 str(数字) 
-  字符串->数字 int(字符串) #字符串中只有数字 float(字符串) 
-  整数yu浮点数 int(浮点数) #只保留了整数部分 float(整数) 
 
-  
-  print 语法:print(变量1,变量2,变量3,····)  print(值列表,sep = “分隔符”,end = “结束符”,file = “文件对象”) file = open("D:\\hello.txt",'w',encoding="utf-8") print("从0到1快速上手",file = file)
-  input 语法:a = input() 赋值python的多重赋值:可以同时为多个变量赋值 -  基本用法 a,b = 1,2
-  交换变量的值 x,y = y,x
-  同时为多个变量赋值 a,b,c = 1,2,3
-  从序列中赋值 #列表中的元素赋值 a,b,c = [1,2,3] #解构元组给变量赋值 first_name,second_name = ("Jenny","Danny") #结构字符串给变量赋值 first_char,second_char = "HE"
-  与函数返回值结合使用 def get_min_max(numbers): return min(numbers), max(numbers) min_val, max_val = get_min_max([1, 2, 3, 4, 5])
-  注意事项 - 多重赋值要求右侧表达式的长度与左侧变量的数量相匹配。
- 如果数量不匹配,Python会抛出 ValueError。
 
 
-  
结构流程控制
-  if···elif···else 
-  while/ do···while 
-  for for i in range(n) #从0到n-1 range(start,end,step) #[start,end) 
列表与元组
-  introduce 列表 列表可以存储一组数据,且列表中的元素可以不同数据类型,且列表元素可以是一个列表。 这也是列表与数组的不同,数组要求元素是同一数据类型。 列表是python内置的数据类型,若要创建数组需要使用numpy模块 
-  创建列表 语法:列表名 = [元素1,元素2,元素3,···] #创建一个空表 list1 = [] #创建一个包含3个元素的列表 list2 = ["red","green","gray"] #列表元素可以是不同数据类型 list3 = ["red",1,True,2] #列表元素还可以是列表 list4 = [[1,2],[3,4],[5,6]]
-  基本操作 -  获取元素:通过下标 
-  修改元素:列表名[i] = 新值 #将一个二维列表的行和列元素进行互换,然后存到另一个二维列表中,最后输出结果 """ a = [[1,2,3],[4,5,6]] -> b = [[1,2],[3,4],[5,6]] #错误代码 a = [[1,2,3],[4,5,6]] b = [] for i in range(len(a)): for j in range(len(a[i])): print(a[i][j]) print(b) """ a = [[1, 2, 3], [4, 5, 6]] b = [] # 用于存储转置后的矩阵 # 假设a是一个非空的二维列表,且所有子列表长度相同 for i in range(len(a[0])): # 遍历列数,即a[0]的长度 b.append([]) # 为b的每列创建一个空列表 # 转置矩阵 for i in range(len(a)): # 遍历行 for j in range(len(b)): # 遍历列 b[j].append(a[i][j]) # 交换行和列的元素 print(b)
-  增加元素 insert(下标,值) #在列表任意位置插入元素 append(新元素) #在列表末尾插入新元素
-  删除元素 #根据下标删除某一个元素 del 列表名[i] #删除某一个元素,默认删除末尾元素 列表名.pop(i) #根据值删除某一个元素 列表名.remove("值")
 
-  
-  获取列表长度:len(列表名) 
-  获取元素个数:列表名.count(元素) 
-  获取元素下标 语法:列表名.index(元素) 
-  合并列表 - 语法:A.extend(B)
 将B列表合并到A列表中并且A列表已经被改变 - C = A + B
 将A、B列表合成一个新的列表,并且A、B列表均未被改变 
-  清空列表 列表名.clear() 
-  切片 - 列表名[m:n] #截取范围[m,n)
- 列表名[m:] #截取范围为m到结尾位置
- 列表名[:n] #截取范围为开始到n-1
- 列表名[:] #截取整个列表
 
-  遍历列表 -  for item in 列表名 
-  enumerate()函数:可以在遍历列表的同时获得元素的下标 语法:for index, item in enumerate(列表名) 
 
-  
-  检索列表:用来判断值是否在列表中 item in 列表名 item not in 列表名 
-  颠倒顺序:列表名.reverse() 
-  大小排序 语法:列表名.sort(reverse = True或False) 
-  数值计算 max(列表) min(列表) sum(列表) 
-  列表与字符串的互转 - 列表转换为字符串: “连接符”.join(列表名)
- 字符串转换为列表:列表名 = string.split(“分隔符”)
 
-  列表运算 列表只有乘法和加法 [1,2]*3 -> [1,2,1,2,1,2] ["红","橙","黄"]+[1,2,3] = ["红","橙","黄",1,2,3]
-  二维列表 
-  元组 元组是不能被改变的数据类型 元组的创建:tuple = (元素1,元素2,元素3,·····) 
-  实战题 -  输入任意5个整数到一个列表中,然后求出该列表中的最大值,并输出这个最大值。 nums = [] for i in range(5): nums.append(int(input())) temp = 0 for index,item in enumerate(nums): if index == 0: temp = item elif item > temp: temp = item
-  输出星期数,输入一个数字(1~7),然后输出对应的星期数。 weekdays = ["Friday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"] i = int(input()) print(weekdays[i-1])
 
-  
字符串
-  多行字符串 
-  原始字符串 在字符串前面加上r或者R,表示这是一个原始字符串 print("C:\northwest\northwind") """ C: orthwest orthwind """ print(r"C:\northwest\northwind) # C:\northwest\northwind
-  获取某一个字符:字符串名[n] 
-  获取字符串长度:len(字符串) 
-  统计字符的个数:count() 语法:字符串名.count(字符) 
-  获取字符下标:index() 字符串名.index(子字符串) 
-  截取字符串:字符串名[m:n] 
-  替换字符串 语法:字符串名.replace(old,new,n) 
-  分割字符串 语法:字符串名.split(“分隔符”) 默认为空格,且空格次数不限 
-  去除首位符号:strip() 语法:字符串名.strip(指定字符) #去除字符串首尾指定的字符,默认空格 
-  大小写转换 - 大写转小写 :字符串名.lower()
- 小写转大写 :字符串名.upper()
- 大写转小写,小写转大写:字符串名.swapcase()
 
-  检索字符串:判断一个字符串中是否包含另一个字符串 -  A.find(B) 
-  A.startwith(B) 
-  A.endwith(B) 
 
-  
-  拼接字符串 -  "+"来实现 
-  %s 可以使用“%s”来实现字符串的拼接,也就是字符串的格式化 print("绿叶学习网成立于%s年"%2015)
-  字符串.format() print("{0}成立于{1}年".format("绿叶学习网",2015))
 
-  
-  类型转换 - 将“元组”或“字符串”转换为一个列表:list()
- 将“列表”或“字符串”转换为一个元组:tuple()
 
-  实战演练 #统计单词个数 string = "As we know,rome was not built in a day" count = 0 for i in string: if i == ' ' or i == ',': count += 1 print(count+1) #将首字母转换为大写 string = "a friend in need is a friend indeed" strs = string.split() for index,item in enumerate(strs): strs[index] = item[0].upper()+item[1:] print(" ".join(strs)) #方法二 string = "a friend in need is a friend indeed" result = "" for i in len(string): if i == 0: result += string[i].upper() else: if string[i-1] == ' ': result += string[i].upper() else: result += string[i]
字典与集合
-  字典的创建 语法:字典名 = {键1:值1,键2:值2,·····} 
-  基本操作 -  获取某个键的值 语法:dict.get(key) dict[key] 
-  修改某个键的值 语法:dict[key] = value 
-  增加键值对 语法:dict[key] = value 
-  删除键值对 语法:del dict[key] = value 
 
-  
-  获取长度:len(dict) 
-  清空字典:dict.clear() 
-  复制字典:dict.copy() 
-  检索字典 语法:用来判断某个键是否“存在”与字典中 key in dict key not in dict 
-  获取键或值 - 字典.keys():获取所有的键
- 字典.values():获取所有的值
- 字典.items():获取所有的键和值
 
-  集合操作 - 交集 {} & {}
- 并集 {} | {}
- 差集 {} - {}
 
-  实战题 
初始函数
数学计算
-  求绝对值:abs() 
-  四舍五入: 语法:round(x,n) 
-  取整运算 - 向上取整 ceil()
- 向下取整 floor()
 
-  平方根运算 sqrt() 
-  圆周率 math.pi 
-  生成随机数 -  随机整数 语法:random.randint(x,y)  random.randrange(x,y,step) 
-  随机浮点数 语法:random.random() 生成0~1的随机整数  random.uniform(x,y) 生成n∈[x,y)的随机整数 
-  随机序列 语法:random.choice(seq)  random.sample(seq,n)  random.shuffle(list) 
 
-  
日期时间
-  time模块 -  获取时间 time() 获取时间戳 localtime(时间戳) 将时间戳转换为本地时间,返回的是struct_time元组 strftime(格式化字符串,本地时间) 将本地时间格式化为指定格式 
-  格式化时间 
  time.strftime(format,tuple) 符号 说明 %Y 年 %m 月 %d 日 %H 小时 %M 分钟 %s 秒 %a 简写星期 %A 完整星期 import time local = time.localtime(time.time()) #local是一个struct_time元组 year = time.strftime("%Y",local) month = time.strftime("%m",local)- struct_time元组的属性
 
-  
| 属性 | 说明 | 
|---|---|
| tm_year | 年 | 
| tm_mon | 月 | 
| tm_mday | 日 | 
| tm_hour | 时 | 
| tm_min | 分 | 
| tm_sec | 秒 | 
| tm_wday | 星期 | 
| tm_yday | 一年第几天 | 
| tm_isdst | 夏令时 | 
-  datetime模块 -  获取日期时间 语法:datetime.datetime.方法名() 
-  设置日期时间 语法:datetime.datetime(year,month,day,hour,minute,second) 
 
-  










