美文网首页
我的Python学习之路0

我的Python学习之路0

作者: 观语小白 | 来源:发表于2020-03-04 00:52 被阅读0次

几个概念

  • 表达式
  • 语句
  • 程序(program)
  • 函数(function)
  1. 表达式
    表达式就是一个类似于数学公式的东西
    比如:10 + 5 8 - 4
    表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响
    如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出

  2. 语句
    在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。。。
    比如:
    print()
    input()
    a = 10
    语句的执行一般会对程序产生一定的影响
    在交互模式中不一定会输出语句的执行结果

  3. 程序(program)
    程序就是由一条一条的语句和一条一条的表达式构成的。

  4. 函数(function)
    函数就是一种语句,函数专门用来完成特定的功能
    函数长的形如:xxx()

    • 函数的分类:

      • 内置函数
        • 由Python解释器提供的函数,可以在Python中直接使用
          自定义函数
        • 由程序员自主的创建的函数
    • 当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数
      函数的两个要素:

      • 参数
        - ()中的内容就是函数的参数
        - 函数中可以没有参数,也可以有多个参数,多个参数之间使用,隔开
      • 返回值
        - 返回值是函数的返回结果,不是所有的函数都有返回值

变量

print(type(1))
print(type(1.5))
print(type(True))
print(type('hello'))
print(type(None))
类型检查结果.png

对象(object)

  • Python是一门面向对象的语言
  • 一切皆对象!
  • 程序运行当中,所有的数据都是存储到内存当中然后再运行的
  • 对象就是对象就是内存当做专门用来存储指定数据的一块区域
  • 对象实际上就是一个容器,专门用来存储数据
  • 像上面的数值、字符串、布尔值、None都是对象

对象的结构

每个对象中都要保存三种数据

  • id(标识)

    用来标识对象的唯一性
    id() 函数 返回对象的唯一标识符,标识符是一个整数
    id是由解析器生成的,在CPython中,id就是对象的内存地址
    对象一旦创建,id永远不能改变

  • type(类型)

    类型用来标识当前对象所属的类型
    比如:int str float bool ...
    类型决定了对象有那些功能
    Pyhon是一门强类型的语言,对象一旦创建类型便不能改变

  • value(值)

    值就是对象中存储的具体的数据
    对于有些对象值是可以改变的
    对象分成两大类,可变对象,不可变对象

print函数详解

print(value,..., sep=' ', end='\n')

  • sep 表示变量之间间隔 默认为一个空格
  • end 表示输出流结尾 默认为换行符
name = "小白"
age = 15
gender = "boy"
print(name,age,gender)
print(name,age,gender,sep='-')
print("AAA")
print("BBB")
print("CCC")
print("AAA",end="")
print("BBB",end="")
print("CCC",end="")
print输出样例.png

三引号的用法

  1. python中三引号可以将复杂的字符串进行复制:
  • python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
  • 三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
chat = """How are you?
I'm fine,thank you,and you?
    Me too!"""
 
print(chat)
输出结果样例.png
  1. 多行注释:
  • Python中的注释是用# ,但是#通常是单行注释,在注释有多行时,每一行多要写一个# ,而用""""""却可以一次性解决
'''
我是个成熟的注释
已经学会了自己注释多行
'''

字符串函数

message = "Hello Python Crash Course world!"
print(message.title())
print(message.upper())
print(message.lower())

title()首字母大写
upper()全部大写
lower()全部小写


效果图

字符串格式化输出

1. 使用占位符 %d %s %f

str(18) <==> 18--->'18'
str(int)强制类型转换(int->str)
%d digit 数字
int(18.5) <==> 18.5--->18
%f
%.1f 保留到十分位,四舍五入

movie = "唐人街探案3"
ticket = 49.9
count = 28
total = ticket * count

message='''
电影:%s
人数:%d
单价:%.1f
总票价:%.1f
''' % (movie, count, ticket, total)

print(message)
占位符样例.png

2. format函数

format是字符串中的一个函数" ".format() 此处的'.' 调用

age = 15
s = "已经上"
money = 3.14
message = "乔治说:我今年{}岁了,{}幼儿园了,有零花钱:{}".format(age, s, money)
#message = f"乔治说:我今年{age}岁了,{s}幼儿园了,有零花钱:{money}"
#效果一样
print(message)
format样例.png

input的使用

name = input("请输入名字:") 阻塞式
input(prompt=None) --->标准的输入流(键盘输入的都是字符串
input() #阻塞
admin+回车 --->name ‘容器’ 接收流中的信息

运算符

1. 赋值运算符

name = 'name' 将'admin'的值赋给 变量name
= += -= *= /=
拓展的运算符:

  • ** : 幂运算 3**4<==>3*3*3
  • // : 整除运算 9//2=4 (向下取整)
  • % : 取余运算 9%2=1

2. 关系运算符

在python中定义变量会有:id,type,value
因此,对于相同value的变量,它的type相同,但是它的id值可能不一样。对于相同id的变量,它的type和value值肯定是一样。

  • == 比较的是value
  • !=
  • is 比较的是id
  • ><
python 变量之小整数池跟大整数池
  • 在交互式模式下
    1. Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,所有位于这个范围内的整数使用的都是同一个对象。同理,单个字母也是这样的。
    2. intern机制处理空格一个单词的复用机会大,所以创建一次,有空格创建多次,但是字符串长度大于20,就不是创建一次了。
    3. 终端是每次执行一次,所以每次的大整数都重新创建
  • 在pycharm中,
    每次运行是所有代码都加载都内存中,属于一个整体,所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。我们只需要记住这是一种优化机制,至于范围到底多大,无需细究。

3. 逻辑运算符 \color{#00008B}{(注意短路情况)}

and:逻辑与
or:逻辑或
not:逻辑非
运算结果返回TrueFalse
当我们对非布尔值进行运算时,Python会将其当做布尔值运算,最终会返回原值

优先级:() > not > and > or

混合例子与解析:
print(1 > 2 and 3 or 4 and 3 < 2 or not 4 > 5)
按照从左向由,优先级高的先执行优先级高的规则,首先因为比较运算符优先级高于逻辑运算符,很简单,如果运算符低于了逻辑运算符优先级那还如何运算呢。and 优先级大于 or,not优先级大于and和or
not 4 > 5 为True
1 > 2 为 False
3 < 2 为 False
Flase and 3,因为False为假所以and不在运算直接返回False
4 and False,因为4为真所以and运算符会继续运算后面的,以False为主,所以返回False。
False or False,为False
False or True,因为False为假,所以or运算符会继续运算后面的,以True为主,所以返回后面的True值。

逻辑运算符补充
1<2<3相当于1 < 2 and 2<3
同理10 < 20 >15则返回True

位运算符

1. 进制

bin()函数

a=3
print(bin(a))        #输出结果0b11
b=0b10111            #0b 二进制
                     #0o  八进制
                     #0x  十六进制
print(int(b))        #输出结果13

0b 二进制
0o 八进制
0x 十六进制 0-9 a-f


字节byte 8个二进制位bit构成一个字节byte
1kb = 1024byte
5 的二进制表示0000 0101
-5的二进制表示1111 1011
求法:

5          : 0 0 0 0 0 1 0 1
取反(反码) : 1 1 1 1 1 0 1 0
+1         : 1 1 1 1 1 0 1 1

所以-5的二进制表示1111 1011

2. 运算符(操作数值变量)

& :与
| :或
! :非
^ :异或 相同的是0 不同的是1
<<:左移 m<<n <==> m*2的n次方
>>:右移 m>>n <==> m整除2的n次方
:取反 将十进制的数字对应的二进制进行取反操作

三元运算符

格式:语句1 if 表达式 else 语句2

运算符的优先级

排序:
**
~
+ - (符号运算符)
* / // %
+ -(加减)
<< >>
&
^
|
== != > >= < <=
= %= /= //= -= += *= **=
is is not
not
and
or

相关文章

网友评论

      本文标题:我的Python学习之路0

      本文链接:https://www.haomeiwen.com/subject/glydlhtx.html