Python 个人学习笔记 【1-10】

CSDN学习链接:https://blog.csdn.net/hihell/category_10573584.html(写的超好!!!)

B站学习链接:https://www.bilibili.com/video/BV1wD4y1o7AS?p=13

环境 Python Education 2021 + tabnine Education (这个补全还有点好用)

1.print

# print 函数学习

# 函数形式 print('Content')

# exp.1 打印'520'
print('520')

# exp.2 打印520
print(520)

# exp.3 打印 500 + 20
print(500 + 20)

# print 函数既可以输出数字 输出表达式 输出字符串 其中 1 属于字符串 2 属于 数字 3 属于 表达式

# Python 中具有多种字符串形式 其中有 'content'  ''content'' '''content''' 在输出过程并无两样 但是三个引号的字符串支持换行 而且只能作为最外层

# exp.4 可以换行的 '''
print('''Hello 
World!''')

# exp.5 交替出现的单双引号
print(''' '$''^^''$' ''')
print(''' ''$'^^'$'' ''')

# 在Python中 3引号支持换行且只能在最外层 且支持换行 单双引号只做区分可以交替使用 见 exp.5

# exp.5 向文件输出 (failed)
fp = open('test.txt','a+') # 打开文件 以读写模式+模式 (类似于C语言 fopen)
print('Hello World!',file = fp)   # 像fp文件写入 'HelloWorld'

# 当使用 Print像文件输出时 需要使用open打开文件

# exp.6 5 2 0
print(5,2,0)
print('5',2,0-1+1)

# print 函数可以接受任意长度的合法参数 且 print 默认自带有一个换行

# exp.7 520不要换行!!
print('52',end= '')
print('0')

# exp.8 520不要分开!!
print('5','2','0')
print('5','2','0',sep='')

# 在Python 中 print后面会默认跟上一个回车可以使用 end = ''来取消或者改成任意字符
# 同样 print 函数在输出两个逗号的内容时会默认补上一个空格 可以使用 sep = '' 来取消或者改成任意字符

# 在 Python 中 很少使用 % 加格式控制符号进行print输出 多使用 format 函数 ,所以 也不用太在意

2.转义字符

# 作者 : Llonvne 
# 邮箱 : work@llonvne.cn

# Python 转义字符

# 常用转义字符
# \\ 反斜杠\
# \' 单引号
# \" 双引号
# \n 回车符

# exp.1 楚河汉界
print('帅',end='')
print('\n')
print('将')

# Python 可以用 \n 来表示一个换行符号

# exp.2 我的帅气披风
print('Me\\~~~~')

# exp.2 保护 Space
print('\tA')
print('A\tA')
print('AA\tA')
print('AAA\tA')
print('AAAA\tA')

# \t 这个转义字符会计算前面的并且自动输出四个空格
# 会输出 4 -(这一行字符总数 % 4) 个空格

# exp.3 允许后悔!
print('AAAAAAAAAAAAAAAAA\rABCDEFG')

# \r 会清空这一行前面的字符

# exp.4 允许后悔,但只能会后悔一点点!
print('Helloo\bWorld')

# \b 可以删除转义字符前面的一个字符

# exp.5 访问 Google
print('https:\\www.google.com','==>Connection Lost!') # 好吧实际上网址都是正斜杠 将就用吧
print('https:\\\\www.google.com','==>Connected!')

# exp.6 Hello World 的奇怪输出
print('老师说\'Hello world!\'')

# exp.6 不要转义!!!
print(r'\n\n\n\n\n')

# 在 Python 中想要忽略掉所有的转义字符,请在前面添加一个 R 或者 r (最后一个字符不可以是一个反斜线,两个可以)

3.标识符和保留字

# 作者 : Llonvne 
# 邮箱 : work@llonvne.cn

# exp.1 让我看看!
import keyword
print('保留字有:',keyword.kwlist)

# Python 与 C 语言 一样拥有保留字 可以使用上诉代码查看

# Python 中 变量 函数 类 模块 以及 其他对象 的名字就叫标识符

# 标识符规则 : 与 C 语言大致相同
# 1.由数字 字母 下划线 组成 2.不能以数字开头 3.不能是保留字 4.严格区分大小写

4.变量的定义和使用

# 作者 : Llonvne 
# 邮箱 : work@llonvne.cn

from decimal import Decimal

# 变量的定义和使用

# exp.1 520 need 2 steps
a = '520'
print(a)

# Python变量不需要声明!

# exp.2 secret of Var
b = 1
print("id =",id(b),"type =",type(b),"value =",b)

# 虽然 Python 在定义变量时无需显示的给出 int 之类的关键字,但是其内部还是存在。

# exp.3 Var != Var
var = 3
print(id(var),var)
var = 4
print(id(var),var)

# Python 每次赋值时都会改变id,虽然都叫Var但是ID已经不同 这与C语言不同

# 数据类型

# Python 常用的数据类型
# int str float bool 含义基本与 C++ 语言一样 str - string

# int (integer)

# 不同进制的 int
# 10 进制 默认的进制 无需任何符号
# 2  进制 以 0b 开头
# 8  进制 以 0o 开头
# 16 进制 以 0x 开头

# exp.4 AUTO 10
a = 1
print(0x15) # 不区分 X 与 x
print(0b010)
print(0o15)

# 在 Python 中print函数会默认使用 10 进制进行输出

# exp.5 I like printf !
a = 'forever'
b = "printf"
c = 520
print('I %d %s %s' %(c,b,a))

# print 函数 也可以像 C 语言中的 printf 函数一样格式化输出字符串
# 具体语法格式为 print('content' %(var1,var2,...))
# 且在 Python 中的 格式化符号 与 C 中基本一样
# 详见 https://www.runoob.com/w3cnote/python3-print-func-b.html

# exp.6 DONT AUTO 10
print(0xa)
print('%d %x' %(0xa,0xa))
print(0b010)
print(bin(0xa))
print(oct(0xa))
print(0xa)

# 可以使用格式化符号 让 print 函数输出 16 或者 8 进制 而不是 强制格式化为 10进制
# 或者使用 bin 转化为 2 进制 字符串
# 使用 oct 转化为 8 进制 字符串
# 使用 hex 转换成 16 进制 字符串
# 注意 上诉三个函数 返回值都是字符串

# exp.7 float is not stable
print(1.1 + 2.2)

# 在 python 中 浮点数具有不精确性

# 解决方案
# from decimal import Decimal # 已经在最前面导入
print(Decimal('1.1') + Decimal('2.2'))

# Decimal('1.1')  注意该函数需要接受一个字符串

# bool 布尔类型 True => 1 ; False => 0;

# exp.8 one Step heaven one Step hell
print(True - 1)
print(False + 1)
print(False - True)

# 跟 C 语言不同的是 在 Python 中 bool 类型的 首字母 强制要求大写 , 而在 C 语言中 均为小写。
# 跟 C 语言一样的是 Python 中的 bool 类型也能对应 0 1 , 且对应相同

# 字符串类型
# 在 Python 中 字符串 可以用 单引号 双引号 三单引号,三双引好  '' ,"", ''' ''', """ """ 来定义
# 其中 除了三引号外,其余字符串都必须在一行内显示,而三引号可以分布在连续的多行

# exp.9 H\ne\nl\nl\o
a = '''
H
e
l
l
o
'''
print(a)
b = 'H\ne\nl\nl\no'
print(b)

# 数据类型转换
# str() other => str
# int() other => int
# float other => float

# exp.10 Number 5 Love Str '20' Story !
print(str(5) + '20')
print(5 + int('20'))
print(5 + float('20'))

# exo.11 Plastic surgery Fail
# print(int('1.23')) 这是错误的 他无法转换带有小数点的数字
print(float('1.23'))
print(float(int(1.23)))

# exp.12 +
a = 20
b = '我的年龄是'
# print(b + a)
print(b + str(a))

# 加号 + 只能处理 同类相加

# exp.13 f~l~o~a~t
print(float('12.3'))

# float 可以将 其他数据类型转换为 float类型

5.注释

# 作者 : Llonvne 
# 邮箱 : work@llonvne.cn

# Python 中的 注释符号 : # (单行注释)

# 实际上 Python 中没有专门多行注释符号 常常用 ''' ''' 来多行注释
'''
注释内容
'''

# 中文编码声明注释 #coding:gbk (可写)
# 在 Python 3 中已经不需要指定

# exp.1 多行注释
'''
我是一个
多行注释
'''

6.input 函数

# 作者 : Llonvne 
# 邮箱 : work@llonvne.cn

# input 函数
# 作用:接受来自用户的输入
# 返回值类型 str
# 值的存储 使用 = 符号赋值到变量

# exp.1 the Answer of 520
print('exp.1')
Answer = input('520')
print('520' + Answer,type(Answer))

# 1.input 函数的参数为屏幕提示符 2.input 函数接收到的内容会作为返回值

# exp.2 5 2 0 need split
print('exp.2')
a,b,c = input().split()
print(a + b + c)

# exp.3 sum 5 2 0
a,b = input().split()
print(int(a) + int(b))

7.运算符 

# 作者 : Llonvne
# 邮箱 : work@llonvne.cn

# 运算符号

# 算术运算符 : 共分:标准算术运算符,取余运算符,幂运算符
# 赋值运算符
# 比较运算符
# 布尔运算符
# 位运算符

# exp.1 All math operator
import copy

print(1+2-3*4/5%6 ** 6 //6)

# 在 Python 中自带有 乘幂运算符 ** 可以直接使用! 还有 整除运算符 // 与 C 语言不同

# exp.2 Negative Entire and mod
print(9//4,9//-4,-9//4,-9//-4)
print(9%4,-9%4,9%-4,-9%-4)
print(9%4,-9%4,9%-4,-9%-4)


# 在 整除 //  过程中 一正一负向下取整数
# 在 余数 %   过程中 一正一负要使用公式 余数 = 被除数 - 除数 * 商 a % b = b - a * ( a // b )

# exp.3 equal
a = 3
b = 4
a = 4
print('a = ',a,'b = ',b)

# exp.4 chain Assignment
a = b = c = 5
print(a,b,c)

# exp.5 parameters Assignment
a = 0
a += 1
print(a)
a -= 2
print(a)
a *= 3
print(a)
a /= 4
print(a)
a //= 2
print(a)
a %= 2
print(a)

# 之前的赋值运算符号与 C 语言基本相同 但是没有 ++ , -- 即 自增 自减运算符号

# exp.7 为什么Python中没有自增自减运算符号
a = b = 123.123
print(id(a))
print(id(b))

# 其实在 Python 中python 中,变量是以内容为基准而不是像 c 中以变量名为基准,
# 所以只要你的数字内容是5,不管你起什么名字,这个变量的 ID 是相同的,
# 同时也就说明了 python 中一个变量可以以多个名称访问
# 在看上例子,虽然创建 a b 两个变量 但是却 指向同一个 值为123.123的空间

# exp.8 Sequence unpacking assignment
a,b,c = 1,2,3
print('a = %d b = %d c = %d' %(a,b,c))

# 系列解包赋值 要求等号左侧和右侧的个数相同

# exp.9 swap
a,b = 10,20
print("before a = %d b = %d" %(a,b))
# swap
a,b = b,a
print("after a = %d b = %d" %(a,b))

# exp.10 = loves
a,b = 1,2
print(a>b,a==b,a<b,a>=b,a<=b,a!=b)

# exp.11 == 比较的是 值 而不是标识 is 比较标识和值
a = b = 1
print(a == b , a is b)
c = a
print(c == a, a is c)

# 事实上在 Python 的内存模型上a 和 b 标识 完全相同 都是一块指向 1 的标识。
# 所以在 在直接赋值的情况下 is 与 == 完全相同 ,这个情况在上文也有说明

# exp.12 list memory 1
list1 = [11,22,33,44]
list2 = [11,22,33,44]
print("list1 id = %d list2 id = %d" %(id(list1),id(list2)))
print(list1 == list2 ,list1 is list2)
list2.append(1)
print(list1,'\n',list2)

# list1 id != list2 id

# exp.13 list memory 2
list1 = list2 = [11,22,33,44]
print("list1 id = %d list2 id = %d" %(id(list1),id(list2)))
print(list1 == list2 ,list1 is list2)
list2.append(1)
print(list1,'\n',list2)

# list1 id == list2 id

# 在python 中 通过 == 直接赋值 会导致 两个数组进行深度绑定
# 如图所示 如果进行的是深度绑定 那么 当任何一个改变 另外一个都会改变。
# 这种情况要十分小心!

# exp.14 bool
# and ,or ,not ,in ,not in
a = True
b = False
c = 1
d = [1,2,3,4,5]
print(a and b,a or b,not a,c in d,c not in d)

# 其中 and or not 分别对应 && || !
# in ,not in 表示是否在在内部(列表)

# 在这里补充一点 Python 常用数学函数
# abs 绝对值函数
# pow 次方函数 也可以使用 ** 运算符号替代
# round 四舍五入函数
# max 最大值函数
# min 最小值函数

# exp.15 Lots of me
print('-~-' * 100)

# 在 Python 中 可以使用 字符串 * 数字 的方式来快速复制字符串

8.help函数

# 作者 : Llonvne 
# 邮箱 : work@llonvne.cn

# exp.1 HELP
help(print)

# 在 Python 中 可以使用 help(函数名字) 来快速查看帮助文档(但是是英文的!)

9.if语句

# 作者 : Llonvne 
# 邮箱 : work@llonvne.cn

# if (条件判断):
# 	代码块

# 注意 在 Python 中 条件判断 有一个冒号

age = int(input('请输入你的年龄:'))
if age >= 18 :
    print('你已经成年了,可以访问!')
    print("你好,我是Python我依靠缩进控制顺序")
else :
    print('你还未成年!禁止访问')
    print("我在else里面")
print("我与上面的判断语句毫无关系!")

10.列表

# 作者 : Llonvne 
# 邮箱 : work@llonvne.cn

# 定义列表
# my_list = [元素1,元素2,元素3...]

# exp.1 list:Nice to meet you!
list1= [5,2,0]

# exp.2 list's 520
list1 = [5,2,0]
print(list1)

# exp.3 contain everything!
Grandfather_family = ['Grandmother','father','mother','me',[1,1,1,1],1.2,[1.2,1.3,1.5]]
print(Grandfather_family)
print(Grandfather_family[0])
print(Grandfather_family[4][1])

# 在 Python 中列表可以包含多种元素 包含不同元素,甚至列表可以包含列表
# 列表中各个元素都可以用索引来访问

# 在 Python 中 正数表示 从 左 到 索引
# 而 负数代表 从 右 到 左 索引
# 而 0 没有 正负 之分 所以 0 始终 指向 第一个元素
# -1 指向 最后一个元素 -2 指向 倒数第二个元素

# exp.4 l i st
list1 = [5,2,0]
I = list1[0:1]
LOVEYOU = list1[1:]
print(I,LOVEYOU)

# 列表切片

# 标准形式 list[start:stop] 注意 切片不包含最后一项 取出的范围为[start:stop - 1] !
# 在 Python 中 除了 切片操作 之外,都会进行越界检查,而在 切片操作 中 越界行为 将自动被视为缺省一样处理
# 如果 缺省某一个参数 将自动填充 start 变成 0;stop 变成 N ;

# 其实 切片操作 还支持 第三个参数 就是间隔参数

# 读取从索引 m 到 n-1 的列表元素
#my_list[m:n]
# 读取列表的前 n 项元素
#my_list[:n]
# 读取列表从 m 开始到结尾的元素
#my_list[m:]
# 间隔 s,读取从 m 到 n 的列表元素
#my_list[m:n:s]

# exp.5 l f
list1 = [5,2,0,1,3,1,4]
print(list1[::2])

# 关于列表的内置函数
# 最大值函数 max
# 最小值函数 min
# 求和函数 sum
# 求长度函数 len

# exp.6 max!
list1 = [5,2,0,1,3,1,4]
print(max(list1))
print(min(list1))

list1 = ['I','L','O','V','E','y','o','u']
print(max(list1))
print(min(list1))

# list1 = ['I','L','O','V','E','y','o','u']
# print(max(list1))
# print(min(list1))

# max 和 min 可以支持 字母 和 英文 比较大小 英文按照ANSI码值比较 ,但不支持混合比较。

# exp.7 SUM LEN 
list1 = [1,2,3,4,5]
print(len(list1))
print(sum(list1))

# 注意 sum 只能用于数字

# exp.8 Wrong 520
word520 = [5,0,0,1,3,1,4]
word520[1] = 2
print(word520)

# Python 的 列表 可以通过 索引 进行修改

# exp.9 delete THE DOGE
doge = ['I','A','M','D','O','G','E']
del doge[0]
print(doge)
del doge[0:2]
print(doge)

# 使用 del 函数 来删除 列表 的元素 可以切片删除!

# exp.10 5 + 2 + 0
I = ["5"]
LOVE = ["2"]
YOU = ["0"]
print(I+LOVE+YOU)

# exp.11 Lots of 520
ILOVEYOU = ["5","2","0"]
print(ILOVEYOU[0:2] * 100)

# 初识Python面向对象
# Python的一切都是对象! 对象有一些方法调用方法是
# 对象.方法()

# 字符串对象的方法
# lower 全小写
# upper 全大写
# title 首字母大写 其余小写
# rstrip (RIGHT) 移除右边空白
# lstrip (LEFT)
# strip (BOTH)

# exp.12 upper and down
ILOVEYOU = 'IloveYOU'
print(ILOVEYOU.upper())
print(ILOVEYOU.lower())
print(ILOVEYOU.title())

ILOVEYOU = '     520     '
print(ILOVEYOU.lstrip() + '1')
print(ILOVEYOU.rstrip() + '1')
print(ILOVEYOU.strip() + '1')

# exp.13 help / dir
print(dir(ILOVEYOU))
print(help(ILOVEYOU.join))

# exp.14 LEAVE ME ALONE !(无端DREAM)
list1 = [1,2,3,4]
list1.append(5)
print(list1)

# 在 Python 的 列表中 可以用 append 方法在最后添加元素

# exp.15 STICK IN!
list1 = [5,0]
list1.insert(1,2);
print(list1)

# insert 方法 : .insert(索引位置,"新增元素")
# 注意这个索引即是插入后新增元素的位置,原索引位置的元素和其后的元素都会向后移动一格
# 如果索引位置越界,则默认在最后

# exp.16 pop out!
list1 = [5,2,0]
print(list1.pop())
print(list1)
list2 = [5,2,0]
print(list2.pop(0))
print(list2)

# pop 方法: .pop(索引位置) 如果缺省则默认是最后一个 作用为 取出索引元素的位置并删除!

# exp.17 Become 520
list1 = [2,5,0]
list1.sort()
print(list1)

list1.sort(reverse=True)
print(list1)

# sort 方法 : .sort 默认从小到大
# 给  reverse = True 可以改成从大到小排序,跟倒转一个意思

# exp.18 250 -> 520
list1 = [2,5,0]
list2 = sorted(list1,reverse = True)
print(list2)

# sorted 函数 注意是函数 会讲给定参数进行从小到大排序,并将排序好的列表返回

# exp.19 Check LOVE!
LOVE = [5,2,0]
print(LOVE.index(5))

# .index(要查找的值) 该函数返回第一个被查找到的值的索引位子
# 注意如果不做异常处理 会导致程序异常 所以可以先用 in 做检查

# exp.20 check before read
search = 1
list1 = [5,2,0]
if search in list1 :
    print(list1.index(search))
else:
    print("Not Found")

# 在使用 index 方法前 先使用 in 做检查

# exp.21 Say 100 times I love you
list1 = ['520']
list2 = list1 * 100
print(list2.count('520'))

# count 方法可以统计一个元素在一个列表中出现的次数

# exp.22 Love you can't separate
list1 = ['I','LOVE','YOU']
list2 = ' '.join(list1)
print(list2)

# join 方法 : 实际上是一个 字符串对象 的方法  字符串(作为分隔符号).join(被加入的列表)
# 这个方法真的非常的顾名思义 哈哈 join 插入空隙
# 注意 : 该方法的参数必须全部为字符串!

# exp.23 Love you to live a life
list1 = [5,2,0]
list2 = [1,3,1,4]
list1.extend(list2)
print(list1)

# extend 方法 可以在列表后追加 注意 是 将list2中的每个元素追加到 list1
# 而不是将 list2 整一个作为一个元素追加到list1
# 如果使用 append 方法就会将 整个list2 作为一个元素追加到 list1

# exp.24 wine is not Emulator
list1 = [5,2,0,[5,2,0,[5,2,0,[5,2,0]]]]
print(list1[3][3][3])

# 理论上来说 列表可以无限套玩

# exp.25 'ILOVEYOU'
a = 'ILOVEYOU'
for i in range(0,len(a)):
    print(a[i])

# 字符串可以视作为一个特殊的列表,它可以使用一些列表的方法,唯一的不同是他不能被改变

# 有时候也需要将字符串做出改变,只需要将字符串改成列表

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值