欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

python基础入门

时间:2023-08-23
python基础入门 文章目录

python基础入门

数值类型与基本操作基本数据结构

字符串 str列表 list

索引 字典 dict集合 set 逻辑结构

判断结构循环结构函数包类 基础操作

异常处理文件处理系统时间 数值类型与基本操作

2**5 # 2的5次方1.3e5 1.3e-5 # 科学计数法0xFF # 16进制 0x是16进制前缀type(a) # 打印数据类型a = int(input('请输入数据')) # 类型转换# input()输入数据默认为字符串# 常见类型 int float str bool list dict-字典 set-集合abs(5.2) # abs函数——取绝对值round(5.2) # round函数——四舍五入min(2,3,4) # min函数——取最小值 可以有若干参数max(2,3,4) # max函数——取最大值 可以有若干参数


基本数据结构 字符串 str

st = 'jupyter ' + 'python' # 字符串加法 -> 有序拼接 'jupyter python'st = 'jupyter ' * 3 # 字符串数乘 -> 重复 'jupyter jupyter jupyter'len(st) # 字符串长度# 拆分st = 'Gin Vodka Vermouth Bourbon'st.split() # 默认按空格拆分字符串 返回列表 ['Gin','Vodka','Vermouth','Bourbon']st.split('Vodka') # 也可指定拆分间隔 间隔不会计入结果# 合并li = ['Gin','Vodka','Vermouth','Bourbon']st = '\'st.join(li) # 以st为衔接合并列表,要求列表中的元素均为字符串类型 # 'Gin\Vodka\Vermouth\Bourbon'# 替换st = 'Gin Vodka Vermouth Bourbon'st.replace('Bourbon','Zero')# 大小写st = 'Vermouth'st.lower() # vermouthst.upper() # VERMOUTHst.strip() # 去除首尾多余空格st.lstrip() # 去除左边多余空格st.rstrip() # 去除右边多余空格# format占位'{} and {} are black'.format('Gin','Vodka')# Gin and Vodka are black'{2} and {1} are black'.format('Gin','Vodka') # 指定索引# Vodka and Gin are black'{a} and {b} are black'.format(a='Gin',b='Vodka') # 指定参数# Gin and Vodka are black


列表 list

有序,可以混合存放任意类型数据,可嵌套,通过索引访问

li = [1,2] + [3,4] # 列表相加 -> 有序拼接 [1,2,3,4]li = [1,2] * 3 # 列表数乘 -> 重复 [1,2,1,2,1,2]len(li) # 求列表长度del li[3:] # 按索引删除某元素tmp in li # 判断元素tmp是否在列表li中 返回True or Falseli.count(tmp) # 计算元素tmp在列表中的个数li.index(tmp) # 返回元素tmp在列表中首次出现的索引 没找到报错ValueErrorli.append(tmp) # 将元素tmp添加进列表最后li.insert(ind,tmp) # 将元素tmp添加在列表索引ind位置li.remove(tmp) # 将列表中首个tmp从列表中移除li.pop() # 将列表尾部的元素弹出 并返回该元素li.pop(ind) # 将索引ind位置的元素弹出 并返回该元素li.sort() # 列表升序排序li.sort(reverse=1) # 列表降序排序li_sort = sorted(li) # 列表升序排序 将结果储存在新列表中 不改变原列表li.reverse() # 列表翻转# 按索引遍历for i in range(len(li)): print(li[i])# 按元素遍历for t in li: print(t)


索引

用于有序数据结构,如字符串和列表,不用于字典和集合

# 首端正数从0开始,尾端倒数从-1开始st = '01234567'st[0] # '0'st[-1] # '7' # 切片st[0:4] # 左闭右开区间 '0123'st[4:] # 4到无穷 '4567'st[:4] # 0到4 '0123'st[-2:] # 倒数第二到无穷 '67'st[::3] # 每3个取一个值 '036'


字典 dict

基本结构:key-value 无序,使用key访问value,不可使用索引

di = {'Gin':'black','Bourbon':'red'}di['Gin'] # 'black'# 列表转化为字典di = dict([('amy',89), ('tom',90)])# {'amy': 89, 'tom': 90}di.get('amy') # 89 di.get('sam') # 没找到 但不会报错di.get('sam','none') # 返回nonedi.pop('amy') # 弹出指定key-value 并返回valuedi['tom'] +=10 # {'tom',100} value可以被运算del di['tom'] # 删除指定key-valuedi = {'Gin':'black','Bourbon':'red'}di.update({'Gin':'black','Vodka':'black'}) # 更新'Gin' in di # Truedi.keys() # 返回字典di的所有key 类型为dict_keys 可用于遍历di.values() # 返回字典di的所有value 类型为dict_values 可用于遍历tang.items() # 返回字典di的所有key-value对# 遍历for key in di.keys(): print(di[key])


集合 set

集合内元素不重复,无序,可以进行一些集合间的数学运算/判断

li = [1,1,2,3,5,8]se = set(li) # {1,2,3,5,8}li = list(se) # 与list可以互相转化a = {1,2,3,4}b = {2,3,4}a | b # 并集 {1,2,3,4}a & b # 交集 {2,3,4}a - b # 在a里面 不在b里面的元素 {1}b <= a # True 判断子集a <= a # Truea.update([4,5,6]) # 更新 {1,2,3,4,5,6}a.remove(1) # 移除指定元素a.pop() # 弹出并返回首部元素


逻辑结构 判断结构

通过and/or连接多个判断条件

三个及以上判断结果用elif表示

使用: 和缩进表示逻辑从属

a = 90if a > 100 and a <= 200: print('if')elif a == 50 or a == 90: print('elif1')elif (a <10 and a > 0) or a > 200: print('elif2')else: print('else')


循环结构

while 循环

a = 0while a < 5: print(a) a += 1se = {'Gin','Vodka','Bourbon'}while se: print(se.pop())

for循环

for i in range(1,5): print(i)di = {'Gin':'black','Vodka':'black','Bourbon':'red'}for key in di.keys(): print(di[key])


函数

参数和返回值根据需要设定,通过def关键字、:和缩进表示逻辑从属

def print_value(a): print('The value of a is ',a) def add_value(a=1,b=2): # 为参数设置默认值 print('a+b is ',a+b) def add_number(a,*args): # 接受不定个数的参数 b = 0 for i in args: a += i b += a return a,b # 返回值可以有多个a,b = add_number(1,2,3)print (a,b) # 6 9 def add_2(a,**kwargs): # **kwargs可传入不定个数的key-value对 for arg,value in kwargs.items(): print(arg,value)add_2(1,x=2,y=3)# x 2# y 3


%%writefile test.py # writefile用于在jupyter中新建文件value = 10010def test_function(): print('success')

# 导入包import test as te # 整个导入包 调用时需用te.print(te.value) # 10010te.test_function() # successfrom test import value,test_function # 导入包中的部分变量和函数 直接使用无需.print(value) # 10010te.test_function() # successfrom test import * # 导入包中的部分变量和函数 直接使用无需.print(te.value) # 10010te.test_function() # success


class people: '帮助信息:这是一个帮助信息' # 类的自带属性 location = 'earth' # 所有实例都会共享number def __init__(self,name,age): # 构造函数 self.name = name self.age = age def show_name(self): print(self.name)per1 = people('Vodka',40) # 实例化per1.name = 'Gin' # 访问per1的name变量per2.show_name() # 访问per2的show_name函数del per1.name # 删除实例per1的name属性hasattr(per1,'age') # True 查看实例是否具有某一属性hasattr(per1,'name') # False 被删除的属性和不存在的属性返回Falsegetattr(per1,'age') # 获取实例per1的属性agesetattr(per1,'name','Gin') # 为实例per1设置name属性setattr(per1,'sex','male') # 可以设置类中没有的属性delattr(per1,'sex') # 删除per1的sex属性print(peolpe.__doc__) # 帮助信息print (people.__name__) # 类的名字print (people.__module__) # 类的定义所在的模块print (people.__bases__) # 父类的构成print (people.__dict__) # 类的组成# 继承class Dad: # 父类 def __init__(self): print ('父类构造函数') def dadFunction(self): print ('父类方法') def sameName(self): print ('来自dad') class son(Dad): # Dad的子类 def __init__(self): print ('子类构造函数') def sonFunction(self): print ('子类方法') def sameName(self): print ('来自子类')child = son() # 子类构造函数child.dadFunction() # 父类方法child.sonFunction() # 子类方法child.sameName() # 来自子类

基础操作 异常处理

用以防止报错导致的程序中断

li = [1,0]for tmp in li: try: print('front') # 报错语句前的语句可以被执行 print(1/tmp) # 报错 跳转至except 该语句不会被执行 print('last') # 报错语句后的语句不可以被执行 except ZeroDivisionError: print('不可以除0') # 涵盖所有报错类型import mathfor i in range(10): try: input_number = input('write a number') if input_number == 'q': break result = 1/math.log(float(input_number)) print (result) except ValueError: print ('ValueError: input must > 0') except ZeroDivisionError: print ('log(value) must != 0') except Exception: # 其他的可能性 print ('unknow error') # finallytry: 1 / 0except: print('不可以除0')finally: print('finally') # 无论try中是否有异常,finally都会被执行 # 自定义错误类型class NumNotInList(ValueError): # 自定义的一种异常 passli = [1,2,3]while True: num = int(input('input a number: ')) if num not in li: raise NumNotInList('数字{}不在列表中'.format(num)) # 抛出一个错误 输入不在列表中的数字时报错终止 并显示错误类型为NumNotInList


文件处理

txt = open('./test.txt') # ./ 即本代码所在的路径txt_str = txt.read() # read函数返回文本内容txt_lines = txt.readlines() # readlines返回列表 文本每一行组成一个元素 包括换行符txt.close() # 文件打开后要记得关闭txt = open('test.txt','w') # 以覆盖写入模式打开文件 一旦写入丢失原有数据txt.write('123')txt.close()txt = open('test.txt','a') # 以追加写入模式打开文件 在原有数据后面写入新的数据txt.write('n321')txt.close()txt = open('test.txt','r') # 以只读模式打开文件 可以读取文件内容print (txt.read())txt.close()with open('test.txt','w') as f: f.write('123n321') # with方法会自动close 且自带类似try-except的防止报错功能 较为常用


系统时间

所在包:time.py

import timeprint(time.time()) # 从1970年1月1日到现在经过了多长时间print (time.localtime(time.time()))# time.struct_time(tm_year=2022, tm_mon=2, tm_mday=4, tm_hour=23, tm_min=18, tm_sec=46, tm_wday=4, tm_yday=35, tm_isdst=0)print (time.asctime(time.localtime(time.time())))# Fri Feb 4 23:18:38 2022print (time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))# 2022-02-04 23:19:17time.sleep(10) # 程序停止十秒

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。