Python入门基础个人学习笔记(一)


编译器:Visual Studio Code
环境:Python 3.9.6 64-bit

你好!这篇文章仅为菜狗自学Python时于编辑器写下的学习笔记,记录学习过程,如有冒犯,不胜荣幸23333。如果你想学习如何使用Python, 可以仔细阅读这篇文章,了解一下Python的基本语法知识。


#print("hello world");
#print(1+1)
#print('hello');     换行输出
#print("hello","world")       同行输出,两个字符串之间自动生成一个空格
#print("hello\nworld")        \n转义字符换行
#print("hello\tworld")        \t制表符,每四个字符为一个单元格,两个字符串之间补空格至4以形成单元格
#print("hello\rworld")        \r回车符,转义符后的字符串回车覆盖前面的字符串,输出world
#print("hello\bworld")        \b退格,退前一个符号位
                              #int,float,bool,str
'''n = 5;
# print(n, type(n));         #输出 5,<class 'int'>   type提取变量类型,Python默认变量类型为integer
                             #二进制Ob,八进制Oo,十六进制Ox
print(n,id(n));'''           #id()函数,获得变量的地址

from decimal import Decimal    
#浮点数运算。运算时,导入Decimal,用以下格式计算可最简洁化小数部分
#print(Decimal('1.1')+Decimal('2.2'))
                              #布尔类型True == 1,false == 0
#print(True + 1);         # 2
#print(False +1);         # 1
                          #连接符“+”不能连接不同类型的数据。如“10”+“我”
#print("我"+str(10)+"岁")  #输出“我10岁”。通过强制转换把 int 10 转换为str
                          # 字符串为浮点数时,不能转换为整型数
                          #str转换为int时,字符串必须为数字串
                        

#输出到文件
'''fp = open('E:/first.txt','a+');   #指定输入的位置     (a+表示若不存在该文件,则创建文件
print('hello world',file = fp);   #使用file = 标识符
fp.close'''

#输入input()
'''
a = input("Please input \n");     #输入函数input(),默认输入类型为str字符串型
print(a , type(a));

b = int(input("please input \n"));    #强制转换,把字符串型转换成整型int
print(b,type(b));
'''

'''
a = int(input());
b = int(input());
s = input();
print(a+b);           #不能实现整型与字符串型的连接。如a+b+s   ,error
print(s+s);           #字符串之间的连接
'''

#算术运算符+ - * / % **(幂运算) //(整除)
'''
print(2**2)        #2的2次方
print(2**3)        #2的3次方
print(9//2)        #9整除2,取整数部分
print(9//-2)       #输出-5.  一正一负向下取整
print(9%-2)        #输出-1.  余数 = 被除数-除数*商     余数 = 9-(-2)*(-5)= -1
'''

#比较运算符(布尔型)< > == >= <= !=  is  is not
    #print(3<1)        #返回True或False
    # ==比较 值;is比较 标识
'''
a = 10;
b = 10;
print(a == b);     #返回True,说明a与b的值(value)相等
print(a is b);     #返回True,说明a与b的标识(id)相等
print(a is not b); #返回False,否认a与b的地址不相等,双重否定为肯定
'''
# 与 and;或 or;非not
    #如a == 10 and b == 20

#位运算符(数据转换成二进制计算)
    #位与&;位或|;左移位<<;右移位>>
'''print(4 & 8)     #0    二进制中,对应数位全为1,结果为1,否则为0
print(4 | 8)     #12   二进制中,对应数位全为0,结果为0,否则为1
print(8 & 8)     #8    8:1000    两个8在第一位对应都为1,则该位为1;其余位一一对应全为0,则对应为0。任为1000
print(4<<1)      #8    二进制向左移动1位,同时在末位补1个0,即100变成1000.相当于*2
print(4>>1)      #2    二进制向右移动1位,同时在末位删1个0,即100变成10.相当于/2
print(16>>3)     #2    二进制向右移动3位,同时在末位删3个0,即10000变成10.相当于/2的3次方
'''
    #位运算符的优先级高于比较运算符

#对象的布尔值bool()
'''
print(bool(False))
print(bool(0))
print(bool(None))
print(bool(""))
print(bool(()))    #空元组
print(bool([]))    #空列表
print(bool({}))    #空字典
'''#以上全为False

#选择结构if-else
'''
a = 10
b = 0
if a!= 10:          #if 条件表达式:
    b = a               #执行体
    print(b)
else:               #else:
    print(b)            #执行体
'''
#pass语句(什么的不做,只是一个占位符,英语需要写语句的地方)
'''
a = 9
if a == 0:
    pass
else:
    pass
'''
#内置函数range(star,stop,step)
    #不管range对象表示的整数序列有多长,其占用的内存空间相同,只存储star,stop,step
'''
r = range(10)       #返回一个迭代器对象r  
print(r)
print(list(r))      #返回[0,10)    查看range对象的整数序列,默认从0开始,且相差1(即步长

r = range(1,10)     #返回[1,10)    指定从1开始
print(list(r))

r = range(1,10,2)   #返回1,3,5,7,9   设置起始和步长
print(list(r))
print(10 in r)      #返回False     in函数判断10是否在r当中
print(10 not in r)  #返回True      not in函数判断
'''
#循环结构(while ,for-in)
   #while循环
'''
a = 1               #初始值
while a <= 10:      #while 判断条件:
    print(a)        #   循环体
    a = a+1
'''
'''0-100的偶数和
a = 1
sum = 0
while a<=100:
    if a%2 == 0:
        sum += a
    a+=1
print(sum)
'''
    #for-in循环
'''
for i in "123abc":     #for 变量 in 可迭代对象:
    print(i)           #    循环体
    #如果不需要变量,可将其替换成下划线_   即for _ in 可迭代对象
'''
'''#0-100的偶数和
sum = 0;
for i in range(0,101):      #range(0,101) 即[0,101)
    if i%2 == 0:
        sum+=i
print(sum)
'''
#程序控制语句 break, continue

#循环与else搭配
    #循环时没有遇到break语句则执行else语句。如:
'''
for i in range(3):
    a = input("Please enter\n")
    if a == "123456":
        print("Password is right")
        break
    else:
        print("False.Input again")
else:          #该else与for-in搭配,即不符合循环条件时执行该else语句
    print("Passwords have been inputted three times")
'''
#列表(相当于数组)
lst = [12,4,61,84,20,43,342]
#l_st = list([12,45,6,8,0,3,342])
#print(type(lst))    #返回<class 'list'>  列表类
'''遍历列表
for i in lst:
print(i)'''
    #sort()方法从小到大排序
'''
lst.sort()     #从小到大排序
#lst.sort(reverse = True)   #降序排序
#lst.sort(reverse = False)  #升序排序
print(lst)
'''
    #sorted()内置函数排序
'''
#lst_0 = sorted(lst)                    #sorted()产生新的列表,从小到大排序
#lst_0 = sorted(lst,reverse=True)       #降序排序
lst_0 = sorted(lst,reverse=False)       #升序排序
print(lst_0)
'''         
    #冒泡排序
    
'''
i = 0
while i<len(lst)-1:   #len()获取列表长度
    j = i+1
    while j<len(lst):
        if lst[i]>lst[j] :
            t = lst[i]
            lst[i] = lst[j]
            lst[j] = t
        j+=1
    i+=1
print(lst)
print(lst[::-1])       #将已排序的列表逆序输出
'''
    #获取列表的多个元素     列表名[star:stop:step],step默认为1
'''
print(lst[1:5:1])       #[4, 61, 84, 20]
print(lst[1:5:2])       #[4, 84]
a = lst[1:6:1]         #[4, 61, 84, 20, 43]
print(a)
print(lst[::-1])       #逆序输出     逆索引,从-1,即末端元素开始
'''
#元素增删改
lst_1 = ["hello","world"]
    #增加
#lst.append(lst_1)     #返回[12, 4, 61, 84, 20, 43, 342, ['hello', 'world']]。在列表末尾添加一个元素
#lst.extend(lst_1)     #返回[12, 4, 61, 84, 20, 43, 342, 'hello', 'world']。在列表末尾至少添加一个元素
#lst.insert(0,99)      #在索引为0的位置添加99,其他元素在索引位置后移。在列表指定位置添加元素
#lst[1:] = lst_1       #返回[12, 'hello', 'world']。切片:将指定索引区间[)的元素切片替换成指定元素

    #删除
#lst.remove(4)          #删除元素“4”。在列表中删除指定元素,如果元素重复出现,只删除第一个
#lst.pop(1)             #删除元素“4”。在列表中删除指定 索引 的元素。若不指定,则默认删除最后一个元素
#lst_2 = lst[1:3]       #返回[4, 61]。切片删除,取指定索引区间的元素,lst[star,stop)
#lst.clear()            #清空列表元素,返回空列表
#del lst                #删除列表,使列表不存在

    #修改
#lst[1] = 100           #把索引1的元素修改为100
#lst[1:3] = lst_1       #切片指定索引区间修改多个元素
#print(lst)

#列表生成式   [元素表达式 for 自定义变量 in 可迭代对象]
'''
lst_3 = [i for i in range(1,10)]
lst_4 = [i*i for i in range(1,10)]
print(lst_3)     #返回[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(lst_4)     #返回[1, 4, 9, 16, 25, 36, 49, 64, 81]
'''

#字典   字典名 = {'键':值,'键':值}
dic_0 = {
    
    '张三':99,'李四':88,"wang五" :55}
    #key不可以重复相同
'''
print(dic_0)        #返回{'张三': 99, '李四': 88, 'wang五': 55}
print(type(dic_0))  #返回<class 'dict'>    即dict类型
'''
    #内置函数dict()创建字典    dict(键:值,键:值)
dic_1 = dict(name='jojo',age=18)
#print(dic_1)        #返回{'name': 'jojo', 'age': 18}

    #字典元素取值--[]取值和get()取值
'''
print(dic_0['张三'])    #返回对应值99.如果不存在,则报错
print(dic_0.get('张三'))    #如果不存在,返回None
    '''
    #key的判断--in ,not in
'''
print('张三' in dic_0)    #返回True
print('张三' not in dic_0)  #返回False
'''
    #字典元素的删除
#del dic_0['张三']          #删除键和值  key,value
#dic_0.clear()              #清空字典,变成空字典
    #字典元素的增加
#dic_0['陈六'] = 60
    #字典元素修改
'''
dic_0['李四'] = 100         #重新赋值,使元素的值改变
print(dic_0)
'''

#获取字典视图
    #keys()函数,获取所有键key
keys_ = dic_0.keys()
'''
print(keys_,type(keys_))        #返回dict_keys(['张三', '李四', 'wang五']) <class 'dict_keys'>
print(list(keys_))             #把获取的key转换成列表储存
'''
    #value()函数,获取所有值value
val = dic_0.values()
'''
print(val,type(val))            #返回dict_values([99, 88, 55]) <class 'dict_values'>
print(list(val))                #把获取的value转换成列表储存
'''
    #items()函数,获取所有元素
items = dic_0.items()
'''
print(items)                    #返回dict_items([('张三', 99), ('李四', 88), ('wang五', 55)])
print(list(items))              #返回[('张三', 99), ('李四', 88), ('wang五', 55)]  产生元组型列表
'''

#遍历字典
'''
for i in dic_0:
    print(i)                #输出所有键key
    print(dic_0[i])         #输出所有值value
    print(i, dic_0[i])
'''
#字典生成式
    #zip()内置函数  两个列表生成一个字典
    #字典名 = {key:value  for key,value in zip(key,value)}
key = ["apple",'pear',"peach"]
value = [4,5,6]
dic_2 = {
    
    key:value  for key,value in zip(key,value)}    #返回{'apple': 4, 'pear': 5, 'peach': 6}
#print(dic_2)


#元组tuple    不可变序列
    #元组名 = (元素,元素)       小括号可以省略
tp_1 = ('Hello','world',98)
tp_2 = tuple(("Python",100,'nice'))     #内置函数tuple()创建元组    元组名 = tuple((元素))
tp_3 = ('code',)     #元组只有一个元素时必须逗号"," 否则为字符串类型
#print(tp_1,type(tp_1))                  #返回('Hello', 'world', 98) <class 'tuple'>

tp_4 = (10,[100,200],99)
#元组不允许修改元素,tp_4[0]不可变,而tp_4[1]是列表,列表为可变序列,可以对其进行操作
'''
print(id(tp_4[1]))
print(type(tp_4[0]),type(tp_4[1]))      #返回<class 'int'> <class 'list'>
tp_4[1].append(300)
print(tp_4)                             #返回(10, [100, 200, 300], 99)
print(id(tp_4[1]))                      #地址不变
'''

    #元组的遍历
'''#for 变量名 in 元组名
for i in range(len(tp_1)):
    print(tp_1[i])
'''

#集合
s = {
    
    'Hello','world',99,99}
#print(s,type(s))            #{99, 'Hello', 'world'} <class 'set'>   //自动除去重复元素

    #内置函数set()
s1 = set(range(6))
#print(s1)                   #{0, 1, 2, 3, 4, 5}
        #把其他类型转化成集合
s2 = set([1,2,5,3,0])
#print(s2)                   #{0, 1, 2, 3, 5}
s3 = set((5,2,1,3,6))
#print(s3)                   #{1, 2, 3, 5, 6}

    #元素增加
s2.add(18)                  #添加一个元素{0, 1, 2, 3, 5, 18}
s2.update({
    
    10,20,30})       #添加序列(集合、列表、元组){0, 1, 2, 3, 5, 10, 18, 20, 30}
#print(s2)                   

    #元素删除
s2.remove(18)               #删除一个元素。元素不存在,抛出异常KeyError
s2.discard(10)              #删除一个元素。元素不存在,正常输出
s2.pop()                    #删除任意一个元素。不能含参数,否则抛出异常TypeError
#s2.clear()                 #清空
#print(s2)

    #集合的包含关系(False,True)
'''
print(s1 == s3)             # ==、!= 判断集合是否相等
print(s1.issubset(s3))      #s1是否是s3的子集
print(s1.isdisjoint(s3))    #两个集合是否含有交集
'''
    #集合的数学运算
'''
        # 交
print(s1.intersection(s3))  #返回s1与s3重合的元素,即交集元素.{1, 2, 3, 5}
print(s1 & s3)              #等同intersection(),返回交集
        # 并
print(s1.union(s3))         #返回两个集合的并集。{0, 1, 2, 3, 4, 5, 6}
print(s1 | s3)              #等同union()
        # 差
print(s1.difference(s3))    #返回s1-s3的差集。{0, 4}
print(s1-s3)                #等同difference

        #对称差
print(s1.symmetric_difference(s3))      #s1并s2除去s1交s2的元素。{0, 4, 6}
print(s1^s3)
'''

#集合生成式
    #{i*i for i in 可迭代对象}
A = {
    
    i*2 for i in range(1,10)}   #{2, 4, 6, 8, 10, 12, 14, 16, 18}
#print(A)        


#字符串
str1 = 'Hello,hello'
'''
print(str1.index('lo'))         #查找子串第一次出现的位置,如果不存在抛出ValueError。   3
print(str1.rindex('lo'))        #查找子串最后一次出现的位置,如果不存在抛出ValueError。 9
print(str1.find('lo'))          #查找子串第一次出现的位置,如果不存在返回-1。           3
print(str1.rfind('lo'))         #查找子串最后一次出现的位置,如果不存在返回-1。         9
'''
str2 = 'abcDEF'

Str = str2.upper()              #全部转换为大写     ABCDEF
Str = str2.lower()              #全部转换为小写     abcdef
Str = str2.swapcase()           #大写变小写,小写变大写     abcDEF
Str = str2.capitalize()         #第一个字母变成大写,其余变成小写       Abcdef
Str_0 = str1.title()            #每个单词第一个字母变成大写     Hello,Hello
#print(Str)

str3 = 'PHP is the best language in the world!'
Str_1 = str3.split()            #以空格分隔,把字符串从左到右分隔,返回列表
Str_1 = str3.rsplit()           #以空格分隔,把字符串从右到左分隔,返回列表
#['PHP', 'is', 'the', 'best', 'language', 'in','the','world','!']

str4 = 'PHP/is/the/best/language/in/the/world/!'
Str_2 = str4.split(sep='/',maxsplit=2)     #以 / 分隔,最大分隔次数为2
#['PHP', 'is', 'the/best/language/in/the/world/!']

Str_3 = str3.replace('PHP','Python')  #把“PHP”替换成“Python”,替换1次
Str_4 = str3.replace(' ','|',3)       #把空格替换成|,替换3次

group = ('Hello',"world","Python","Java")
#print('/'.join(group))                #jion()把列表或元组中的字符串合并成一个字符串
#Hello/world/Python/Java

#print(ord('a'),chr(98))         #ord()由字符获取字符编号,chr()由数字编号获取字符。 97 b

    #字符串切片
str5 = "Hello word"
Str_5 = str5[0:6]               #返回Hello  即从第0个字符到第6个字符
#print(Str_5)

    #格式化字符串format
        # % ,{}作占位符    %s,%d,%f
goods = "衬衫"
p1 = 9
p2 = 15
'''
print("%s的价格是%d磅%d便士" % (goods,p1,p2))           #字符串 % 元组
print("{0}的价格是{1}磅{2}便士".format(goods,p1,p2))    #字符串.format()
print(f'{goods}的价格是{p1}磅{p2}便士')                 # f"字符串{变量名}"

print('%10d' % 99)              #宽度为10。在99前补8个空格
print("%.2f" % 3.1415926)       #保留两位小数
'''

#调用函数
'''def 函数名(参数):
        函数体
        return 返回值
'''
num1 = 10
num2 = 20

def sum(a,b):
    add = a+b
    return add

result = sum(num1,num2)     #从上往下读取代码时,只能调用已有函数
#print(result)

    #个数可变参数
'''
def fun1(*num):             # *定义个数可变的位置形参,返回元组
    print(num)
def fun2(**num):            # **定义个数可变的关键字形参,返回字典
    print(num)
fun1(10,20)                 #(10, 20)
fun2(a = 10,b = 20)         #{'a': 10, 'b': 20}
'''

抛出异常

#try,except,else,fanally语句
    #执行try语句,如果不出错,执行else语句;否则执行except语句
import traceback                #导入traceback模块打印异常信息
try:
    a = input("first number\n")
    b = input("second number\n")
    result = int(a) + int(b)
except BaseException as e:
    print("Wrong\n",e)          #直接使用print()输出异常
    traceback.print_exc()       #使用trackback调用print()打印异常
else:
    print(result)
finally:
    print("无论是否出错都会执行")

猜你喜欢

转载自blog.csdn.net/Are_you_kidding_/article/details/120046217