python基础语法

计算机基础

cpu:人类的大脑

内存 临时此处一些数据 解决硬盘和cpu 速度差

硬盘 永久存储数据

操作系统 一个特殊的程序 调度硬件和软件之间的数据交互

编译型:c,c++

       **将代码一次性全部编译成二进制,然后再执行**。
       优点:执行效率高。
       缺点:开发效率低,不能跨平台。
       代表语言:C
解释型:python,强累定义语言
       逐行解释成二进制,**逐行运行**。
       优点:开发效率高,可以跨平台。
       缺点:执行效率低。不能加密
       代表语言:python。
混合型
           java

python的种类(解释器)

Cpython:官方推荐**解释器**。可以转化成C语言能识别的字节码。(c)
**Jpython**: 可以转化成Java语言能识别的字节码。(java)
**Ironpython**:可以转化成.net语言能识别的字节码( c#)
**pypy**:转换成 动态编译。(python)两块 开发快运行快
ipython 和cpython在终端上有一点区别

变量

命名规范

变量:代指一些内容、便利贴

1.变量全部由**数字,字母 下划线**任意组合。(不行有,。;’【】等)
不能以数字开头。 

2.不能是python的关键字。
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

3.要具有描述性。name= '骚强'    不能使用中文。  不能过长。
x8 = 100  # True
b__ = 12  # True
4g = 32  # False
_ = 11  # True
*r = 12  # False
r3t4 = 10  # True
t_ = 66  # True

推荐

  • 驼峰体:AgeOfOldboy = 73
  • 下划线:age_of_oldboy = 73where:

代指一些复杂过长的数据。

content = 'sfkdsjalfjdsl‘

变量的小高级

变量的小高级:从上往下走
age1 = 18
age2 = age1#=代表指向 
age3 = age2
age2 = 12
print(age1,age2,age3)  # 18 12 18 出现这个情况是 age2改变了指向 age1 age3还指向原来的

在看一个列题
age1 = [1]
age2 = age1#=代表指向 
age3 = age2
age2 = []
print(age1,age2,age3)#[1] [] [1]

常量

# 常量    约定俗成不能改变 一般大写表示
python中没有真正的常量,为了应和其他语言的口味,全部大写的变量称之为常量。
将变量全部大写,放在文件的最上面。
设置一些不变的量 :身份证号,id等
BIRTH_OF_CHINA = 1949

注释(重点

 文言文中对一些晦涩难懂的成语或者经典的出处 解释说明。便于你理解。
 便于你理解对方的代码,自己的代码。
 单行(单行)注释:  #    **注释的代码不执行**
 多行注释: '''被注释内容'''  """被注释内容"""#变成了字符串并没有引用
 难以理解的代码后面,加注释。
 函数,类,文件都需要注释,解释说明。 好理解

初识int str bool

int(整型):

1 ,2, 123, ....
+ - * /   运算

str(字符串)

凡是用 引号 引起来的数据就称之为字符串。
'', "", ''' ''',  """ """
# 单双引号可以配合使用
# 三引号:换行的字符串
# str + str  *** 字符串的拼接 (都是字符串才可以)
# str * int 字符串的相乘(字符串与数子)

bool

就是True False
实列
# print(2 > 1)
# print(3 < 1)
# print(True)
# print('True')

type 与isinstance

type() 查看属于什么类  
isinstance(b,str)是不是b是不是 str 实列化出来的对象

input 与print 的注意事项

python3 input 获取的都是字符串
print()的几个参数
# print(*objects, sep=' ', end='\n', file=sys.stdout)
# objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
# sep -- 用来间隔多个对象,默认值是一个空格。
# end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
# file -- 要写入的文件对象。*3/2)
\t tab 建 \n 换行


流程控制语句

基本结构:

if 条件:   #判断
缩进  结果   #条件成立后执行的(4个空格)
# if{条件}{结果}


单分支

if 条件:
    满足条件后要执行的代码

实列

if 2 < 1:
    print(666)
print(222)


双分支

if 条件:
    满足条件执行代码
else:
    if条件不满足就走这段


实列

age = input('请输入年龄:')
if int(age) > 18:
    print('恭喜你,成年了')
else:
    print('小屁孩儿')


多分支

if 条件:
    满足条件执行代码
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个
else:
    上面所有的条件不满足就走这段


实列

num = int(input('猜点数:'))
if num == 1:
    print('晚上请你吃饭')
elif num == 3:
    print('一起溜达')
elif num == 2:
    print('请你大宝剑')
else:#以上都不符合条件
    print('太笨了....')
print('组合')


多选 纯if

if 条件:
    满足条件执行代码
if 条件:
    上面的条件不满足就走这个


实列

if 5>2:
    print(666)
if 5>3:
    print(666)


嵌套的if

if 条件:
    if 条件:
        满足条件执行代码


实列

username = input('请输入用户名:')
password = input('请输入密码:')
code = 'qwer'
your_code = input('请输入验证码:')

if your_code == code:
    if username == 'taibai' and password == '123':
        print('登录成功')
    else:
        print('账号或者密码错误')
else:
    print('验证码错误')


在Python语言中,也有三元运算符。不过Python的三元运算符和java以及C#有所区别,语法格式为:
表达式1 if 条件表达式 else 表达式2
当表达式返回True时,返回结果表达式1,否则返回结果表达式2。示例:
c = a if a < b else b

for else

结果
for i in [1,2]:
    if i==2:
        break
    else:
        print(i)
else:
    for i in range(6):
        print(i)
结果      
for i in [1,2]:
    if i==2:
        break
    else:
        print(i)
for i in range(6):
`print(i)


while 循环

while 条件:
    循环体

循环终止

改变条件 或者continue break

改变条件

flag = True
while flag:
    print('狼的诱惑')
    print('我们不一样')
    print('月亮之上')
    flag = False
  print('庐州月')
    print('人间')

continue break

# while else: while 循环如果被break打断,则不执行else语句。
     count = 1
while count < 5:
         print(count)
      if count == 2:
             break
      count = count + 1
     else:
         print(666)

你需要重复之前的动作,输入用户名密码,考虑到while循环。

for循环 len() range () 学习

len()#获取可迭代对象长度
fro循环
range #默认从0开始 可以步长 类似列表 顾头不顾尾

range注意事项

s = range(1,10)  # 面试大坑  python2 和 python3
print(s)  # 范围 range(1, 10)

格式化输出 3种

当你遇到这样的需求:字符串中想让某些位置变成动态可传入的,首先要考虑到格式化输出。 
只有小s 不可以大写
%s 字符串 %d int整型   %%(转义)        字符串格式化 不能多 不能少且要一一对应
name=input('>>>')  #第一种
print('我的名字是%s'%(name))

#第2种 {}括号
name=input('>>>') 
print(f'我的名字是{name}')
f扩起来{}包占位的

# 第三种字符串格式化 format
# name = "alex{}wusir{}"
# name1 = name.format('结婚了',"要结婚了")  # 按照位置顺序去填充的
# name = "alex{1}wusir{0}"
# name1 = name.format('结婚了',"要结婚了")    # 按照索引位置去填充
# name = "alex{a}wusir{b}"
# name1 = name.format(a="结婚了",b="马上结婚")  # 指名道姓 填充
# print(name1)

运算符 与and运算

算数运算 +, - ,\* ,/ ,%, **幂,//取整   %取余
比较运算符 == , !=  , >  ,<  , >=  , <=
赋值运算符 = ,+= ,-= ,\*= ,/= ,**= ,%= ,//=
逻辑运算符 and(与 -- 和) or (或) not (非 -- 不是)
成员运算符 in 在   not in 不在
身份运算 is是 is not 不是


# 在没有()的情况下,优先级:not > and > or,同一优先级从左至右依次计算
# and 运算 2都为真 and的后面***
# and 运算 2都为假 and的前面
# or 运算 2都为真 or的前面***
# or 运算 2都为假 or的后面
# and 运算 一真一假 取假
# or 运算 一真一假 取 真


一个等号代表的含义是赋值,将某一数值赋给某个变量,比如a=3,将3这个数值赋予给a。
两个等号是判断是否相等,返回True或False,比如1==1。他们是相等的,那么就返回true。1==2,他们是不相等的,那么就返回false。
is 判断id相同

数据类型之间的转换

# str ---> int  : 只能是纯数字组成的字符串
s1 = '00100'
print(int(s1))
# int ----> str
i1 = 100
print(str(i1),type(str(i1)))

# int  ---> bool  : 非零即True ,0为False。
i = 0
print(bool(i))
# bool ---> int
print(int(True))  # 1
print(int(False))  # 0

编码的初识

计算机存储文件,存储数据,以及将一些数据信息通过网络发送出去,存储发送数据什么内容?底层都是01010101.

密码本:01010110 二进制与 文字之间的对应关系。

最早起的密码本:

英文1 欧洲2 亚洲3

ASCII码 只支持英文**   1字节
gbk 英1中2
Unicode  英2 中4
Utf-8 英文1 欧洲2 亚洲3

编码转化

bit是字位,也就是计算机存储数据的“0”、“1”,每个“0”、“1”都是一个字位。Byte是字节,是文件存储的最小单位,一个字节由八个字位组成,前七位是文件的名称,最后一位是校验位。1Byte=8bit,1KB=1024Byte,1MB=1024KB,1GB=1024MB,1TB=1024GB。

8bit = 1Byte****B
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB


1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB    

7.6MB  ----> 7.6 * 1024 * 1024 * 8

posted @ 2020-02-29 12:17  一起奥利给  阅读(253)  评论(0编辑  收藏  举报