Python学习之路

@[TOC]Python学习之旅-one day

自我介绍

本身是一名刚刚毕业的大学生,才工作了几个月深刻的体会到了,当时在大学虚度的光阴。非常后悔没有在大学时候就开始学习程序语言,如今现在的工作自身不是很喜欢,想通过自身的学习进行转型。

Python

变量

变量的类型

	从严格的意义上讲,python只有一种类型
	标准数据类型共六中
		1.数字Number
		2.字符串类型Str
		3.列表List
		4.元祖 tuple
		5.字典 dict
		6.集合 set

数据类型Number

 python中的数字没有大小限制

常见数字分类

a.整数
	没有小数部分
	包含正数,负数,0
	二进制
		只有01
		以0b开头的01串
# 二进制定义
a1 = 0b110
print (a1)

a2 = 0b11110
print(a2)
	八进制
		以0b开头的0-7之间的数字串
# 八进制
a3 = 0o71
print(a3)
	十六进制
		以0x组成的由0-9,a-f构成的串
#十六进制
a4 = 0xffff
print(a4)

a5 = 0x54ff2
print(a5)
b.浮点数
	就是通俗意义上的小数量
	常见的案例格式
		3.1415926
		3.
		0.5
		.4
c.科学计数法
	定义跟数学定义一样
	写法就是e后面跟整数用来表示10的整数
# 科学技术法
heigh = 1.75
print(heigh)

heigh = 1.75e2
print(heigh)

a = .2
print(a)
d.复数 complex
   跟数学定义一致
   	复数的虚部用j/J表示:例如
   		5+4j
   		4j
   		(4j)
a = 4j
print(a)

布尔值

布尔值就是用来表示真假的值
只有两个值:True/False
在python中,布尔值可以当数字使用
	布尔值如果当数字使用,True=1,False=0
	如果数字用来当作布尔值使用,0=False,其余当作True
# 布尔值当作数字使用
 
age = 18 + True
print(age)

age = 18 + False
print(age)

# 判断语句
a = -1 
if a:
    print("负数是True")
else:
    print("负数是False")

字符串

表达文字信息的内容,比如"我爱你"
形式上是引导引起来的一段内容
引号包括
	单引号
	双引号
	三引号,可以用来表示多行信息
 单双引号含义一致
# 字符创案例
love = "Python"
print(love)

love2 = 'Python'
print(love2)

#三引号
love3 = """
J
A
V
A
"""

print(love3)

###None 类型
表示没有,通常用来占位
比如返回,用来表示返回一个空

表达式

  • 由一个或几个数字或者变量或者运算符合成一行代码
  • 通常返回一个结果

运算符

  • 由一个以上的值经过一系列的运输得到新增的过程就叫运算
  • 用来操作运算的符号叫运算符
  • 运算符分类
    • 算数运算符
    • 比较或者关系运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算
    • 成员运算符
    • 身份运算符
# 表达式案例
a = 1 + 2 

算数运算符

  • 用来进行算数运算的符号
  • 通常用来表示加减乘除
  • pythhon没有自增自减运算符
## 算术运算符案例

# 加减乘跟数学意义基本一致

a = 9 - 2 
print(a)

b = 9 + 2
print(b)

c = 8 * 2 
print(c)

# python除法分为普通除法,地板除,取余
# 此操作符在python2.x和3.x中有些不同
#正常除法
a = 9 / 2 
print(a)


# 地板除 取整除
a = 9 // 2
print(a)

# 取余
a = 9 % 2
print(a)

# 除以负数的结果 
# 理解这个结果参靠取余的定义
a = 9 % -4
print(a)

# 两个乘号就是指数
a = 7 ** 2
print(a)

比较运算符

  • 对两个内容进行比较的运算符
  • 结果一定是布尔值,即True/False
# 等于 == 
a = 3 == 4
print(a)

# 不等于 !=
a = 3 != 4
print(a)

# 其他的符号是
# >,>=,<,<=

print(3>=4)

print("小白" > "小")

赋值运算符

  • 把一个值放到变量里边去
# 赋值符号 = 
a = 9

# 复杂赋值
a = b = 9 
a,b = 1,2

# 赋值的缩写
d = 0
d = d + 3
print(d)

# 注意下面符号仅仅是一个缩写
d += 3 # d = d + 3
print(d)

##所有数学运算符都可以缩写
# -=,*=,/=,//=,%=,**=,都是缩写形式
# python里面没有 ++,--

逻辑运算符

  • 对布尔类型变量或者值进行运算的符号
  • and :逻辑与
  • or : 逻辑或
  • not: 逻辑非
  • python里面的逻辑运算没有异或
  • 运算规则:
    • and看做乘法,or看做加法
    • True看做1,Flase看做0
    • 则逻辑运算就能转换成整数数字运算
    • 最后结果如果是0则为False,否则为True
  • 逻辑运算的短路问题
    • 逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回
# 逻辑表达举例
a = True
b = True
c = False

aa = a and b # 左边表达式可以转换成 1 * 1
print(aa)

bb = a and c
print(bb)

cc = 100 and c
print(cc)

# 布尔值跟数字的转化
# 数字转换成布尔值的时候, 0 = false ,其余是true
# 布尔值转换成数字的时候,True = 1,Flase = 0
# 短路问题案例1
a = True
b = True
c = False

aa = a or b and (a and b)  # 转换成算数 1 + .....
print(aa)
# 短路问题案例2
def a():
    print('a')
    return True

def b():
    print("b")
    return True

aaa = a() and b()
print(aaa)

# 字符创乘以数字,表示对是这个字符串重复多少遍
print("*" * 20)


bbb =  a() or b() # 短路发生
print(bbb)

成员运算符

  • 用来检测一个值或者变量是否在某个集合里面
  • in: 成员运算符
  • not in :不在里边的意思
# in 案例

L = [1,2,3,4,5]
a = 6
b = a in L
print(b)

# a没有在L里面吗?
b = a not in L
print(b)

身份运算符

  • 用来确定两个变量是否是同一变量
  • is : 变量运算符
  • is not : 不是
  • 学Python的想必都知道,对整数N \ IN[-5,256],解释器对他们做了单独的处理,放进了固定的内存中,不因你每次运行而变化
    • 这里再记录一些相关的
    • 不仅对小整数有这样的处理,内建的类(int,staticmane,object,TypeError…)也都是这样处理的。
    • 看一个变量的内存是不是这样处理的,无需运行两次,只要看id()编号的长度就行,它们都是10位的,普通变量都是十三位的。
    • 其实并不是每次运行结果都是一样的,比如重启一下电脑再试试。
    • 不同的软件打开的同一个python解释器结果也是不同的(最先打开的那个会影响其他的),比如我的电脑线打开pycharm、cmd、jupyter得到的是不同的结果。
    • 只要把解释器全部关闭再打开某一个,其余的都会是这个软件的值。
    • 电脑不关机的话,软件重复关闭打开id值是一样的
    • (当然同一台电脑上不同python解释器结果肯定是不相同,不同电脑那就更不用说了)
# 身份运算符定义
a = 1
b = 1000000

aa = a is b
print(aa)

#a,b仅仅是值一样,并不代表a,b是一个变量
a = 1000000
b = 1000000

aa = a is b
print(aa)

# 正确理解下面案例跟上面案例的不同
#-5 到 256 之间
a = 5
b = 5

aa = a is b
print(aa)

运算符优先级问题

  • 小括号具有最高优先级
    • ** 指数(最高优先级)
    • ~±按位翻转,一元加号和减号(最后两个的方法名为+@ 和-@)
    • / % // 乘,除,取模和取整数
    • 加法减法
    • ‘>>’ ‘<<’ 右移,左移运算符
    • & 位 ‘AND’
    • ^ | 位运算符
    • <= < > >= 比较运算符
    • <> == != 等于运算符
    • = %= /= //= -= += *= **= 赋值运算符

程序结构

  • 程序三种结构
    • 顺序
    • 循环
    • 分支

分支结构

  • 分支结构基本语法
    if 条件表达式:
    语句1
    语句2
    语句3
  • 条件表达式就是计算结果必须为布尔值的表达式
  • 表达式后面的冒号不能少
  • 注意if后面的出现的语句,如果属于if语句块,则必须同一个缩进等级
  • 条件表达式结果为True执行if后面的缩进的语句块
# if 语句联系
# 如果你们都买我的习题课,我就发财了
# 字符串有内容就是True,空就是Fasle
a = "    " # 这里面有空格
if a:
    print("我就发财了")
    print("迎娶白富美")
    
print("日子还得过啊")
# if 联系二

age = 19

if age > 16:
    print("喝酒")
    
print("下次你请我")

双向分支

  • if…else…表达
  • 语法结构:
    if 条件表达式:
    语句1
    语句2

    else:
    语句1
    语句2
# 如果你们都买我的习题课,我就发财了

a = ""

# 字符串有内容就是True,空就是Fasle

if a:
    print("我就发财了")
    print("迎娶白富美")
else:
    print("日子还得过啊")
# input的作用
# 1. 在屏幕上输出括号内的字符串
# 2. 接收用户输入的内容并返回到程序
# 3. input返回的内容一定是字符串类型

# input负责接收用户输入并把内容返回给变量
# input() 提示语句直接写在input中,是一个字符串
gender = input("请输入你的性别(man/girl):")

# 打印输入的内容
print(gender)

if gender == "man":
    print("喝酒")
else:
    print("回家去吧")
# 考试成绩判断
# 成绩由用户输入
# 90以上:输出优秀
# 80-90: 良
# 70-80:中
# 60-70: 平
# 60以下:输出:我没你这样的学生


# 输入成绩,需要用到input函数
# input输入的值全部是字符串类型



score = input("请输入你的分数:")


# 解决输入是字符串的问题
score = int(score)
if score >= 90:
    print("优秀")
if score >= 80 and score < 90:
    print("良")
if score >= 70 and score < 80:
    print("中")
if score >= 60 and score < 70:
    print("平")
if score < 60:
    print("我没有你这样的学生")

多路分支

  • 很多分支的情况,叫多路分支

    if 条件表达式:
    语句1

    elif 条件表达式:
    语句1

    elif 条件表达式:
    语句1

    else
    语句1

  • elif 可以有很多个,根据实际情况

  • else 可选

  • 多路分支最多只会执行一种情况

if语句补充

  • if语句可以嵌套使用,但是不推荐
  • python 没有switch语句
score = input("请输入你的分数:")

# 解决输入是字符串的问题
score = int(score)

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良")
elif score >= 70:
    print("中")
elif score >= 60:
    print("平")
else:
    print("我没有你这样的学生")

循环语句

  • 重复执行某一个固定的动作或者任务
  • 分类
    • for
    • while

for 循环

  • 语法
    for 变量 in 序列:
    语句1
    语句2
# 比如[1,2,3,4,5,6,7]

list_one=[1,2,3,4,5,6,7]
for shuzi in list_one:
    print(shuzi)
    print(shuzi + 100)
    print(shuzi + 1000)
# 打印学生列表姓名
# 如果是xiaoming,那就是我的最爱
# 如果是别的学生,那就要拒绝

stu_list = ['小白','小黑','小明']



for stu in stu_list:
    if stu == '小明':
        print("我的最爱")
    else:
        print(stu + "你是个好人")

for-else 语句

  • for循环结束的时候,有时候需要执行一些收尾工作,此时需要使用else语句
  • else 语句是可选
# for-else 语句
# 打印列表中的同学
# 如果没有在列表中,或者列表结束了,我们需要打印提示语句,表示不在爱了

stu_list = ['小白','小黑','小明']

for stu in stu_list:
    if stu == '小明':
        print("我的最爱")
    else:
        print(stu + "你是个好人")
else:
    print("不再爱了")

break , continue , pass

  • break:无条件结束整个循环,简称循环猝死
  • continue:继续,立即结束本次循环,继续执行下次循环
  • pass : 只是占位符号,代表这句话啥也不干,也没有跳过功能
# 在一个数字队列中,寻找数字7,如果找到,打印出来即可,并且结束
# 确定是否包含,只要找到一个即可确定,不需要再继续往下找了,所有使用break


dig_list = [3,4,5,1,6,7,43,23,56,7]

for dig in dig_list:
    if dig == 7:
        dig = str(dig)
        print(dig +  "找到了")
        break
    else:
        print(dig)
# continue 语句练习
# 在数字1-10中,寻找所有偶数,找偶数后打印偶数

dig_list = [1,2,3,4,5,6,7,8,9,10]


'''
# continue案例1

for dig in dig_list:
    if dig % 2 == 0:
        print(dig)
        print("你是个偶数")
    else:
        continue
'''     

# 此段代码跟上面代码等价
for dig in dig_list:
    if dig % 2 == 1:
        continue
        
    print(dig)
    print("你是个偶数")
# pass案例1


age  = 19
if age > 19:
    pass
else:
    print("你还小")
# pass案例2

ages = [2,23,41,54,63,2]

for age in ages:
    pass
    print(age)

range函数

  • 生成有序数列
  • 生成数字队列可以定制在这里插入代码片
# range案例1
# 生成一个从1到100的数字序列
# range的生成序列的规则是,左包括右不包括

dig_list = range(1,100)
for dig in dig_list:
    print(dig)
    
# 一般在python中,连个表示范围的数字都是左包括右边不包括,randint函数是个特例
# range函数在python2.x和python3.x有严重区别
# range案例2
# 打印从1到9 的数字

for i in range(1,10):
    print(i)

while循环

  • 一个循环语句

  • 表示当条件成立的时候,就循环,适应于不知道具体循环次数,但能够确定在某个条件成立时就循环

  • while语法:
    while 条件表达式:
    语句块

         另外一种表示式
           while 条件表达式:
               语句块1
           else:
               语句块2
    
# 如果说年利率是6.7%,本利是每年翻滚,则多少年后本钱会翻倍


benqian = 10000
year = 0 # 存放需要翻本的年数

while benqian < 20000:
    benqian *= (1 + 0.067)
    year += 1
    
print(year)


# 年利率案例2
while benqian < 20000:
    benqian *= (1 + 0.067)
    year += 1
else:    
    print(year)

函数

  • 函数是代码的一种组织形式
  • 函数应该能完成一项特定的工作,而且一般一个函数值完成一项工作
  • 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的叫函数,无返回结果的叫过程,python不加以区分
  • 函数的使用
    • 函数适应需要先定义
    • 使用函数,俗称调用
# 定义一个函数
# 只是定义的话不会执行
# 1.def关键字,后跟一个空格
# 2.函数名,自己定义,起名需要遵循命名规则,约定俗称,大驼峰命名只给类用
# 3.后面括号和冒号不能省,括号内可以有参数
# 4.函数内所代码缩进

def func():
    print("我是一个函数")
    print('python')
    
print("函数结束")

# 函数的调用
# 直接写出函数名字,后面小括号不能省略,括号内内容根据情况

func()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值