zoukankan      html  css  js  c++  java
  • 02_Python之基础编程

    Python中文乱码:

    在Python3 是不会出现中文乱码的情况的。因为Python3 已经是默认Unicode 编码(utf-8) 。

    但是在Python2 中是不支持中文的,解决方法我们都知道是  # -*- encoding = utf-8 -*-  

    下面说下什么是中文乱码:

    首先要知道 1字节=8bit位。  

     我们还要知道,储存器只能存储数字。 我们如果想要存储字符,就要想先将相应的字符变为数字。

    于是问题就来了。

    1,该按照怎样的规范把字符转换成数字? 

    2,按照怎样的方式存储数字(例如:用多少个字节?)

    例如: 将” I am Iron man! “ 这句话存到计算机中。 I 是应该变为数字10 还是数字20 呢? 变为10 20 之后,是用几个字节来存放呢?

    这时候,字符编码 就出现了,它解决了上述的两个问题,它规定了 字符和对应数字转换的规范 以及 用几个字节存储这个数字

    下面有三个概念:字符,字符集,字符码

    I,a ,m 等都是字符  。

    所有的字符加起来 就是 字符集。    

    字符对应的数字 是 字符码

     

    不同字符编码:

    当今,计算机中有不同的字符编码。

    它们之间的规范 以及 存储对应数字的字节可能是不同的。 所以,如果不同字符编码之间做转换时,就可能出现乱码。

    比如说,存入的时候是用ASCII 存入的。例如 I (73) 。但是,取出的时候用其他的字符编码。可能取出的就是 “你”了, 就出现乱码了。

    而且,不同编码的第二个要素也是不同的。它们用于存储对应数字的字节数不同。 这也是导致乱码产生的原因之一。

    你可能会问,那搞一个编码不就可以了吗,为什么搞这么多编码呢?

    确实是这样,但是计算机的发展有它自己的历程,最开始的计算机发展是在美国,它们使用的是英语,总共有26个字母,10个数字,还有一些符号。它们使用一个字节可以完全的满足它们的需求。 可是到我们汉语就不行了,我们汉字有很多。  一个字节根本不够。所以我们国家有我们自己的编码GBK (它使用两个字节存储一个字符码。)

    其他的国家也有它们自己的编码,韩国,日本等。  

    为啥会有这么多字符编码?

    注:utf-8 是可变的,它可能是一个字节,两个字节,三个字节。  

    Python 中的open() 函数在 windows平台上,默认使用的编码方式是 GBK!!

    在Windows上用记事本写的a.txt 文件默认是UTF8编码格式! 

    在Python中使用open()函数时候,要注意 参数encoding = !!!

    Python 基础:

    面试题:关于 静态类型, 动态类型  和 强类型,弱类型 :

    静态,动态之分是 看是否后期可以动态修改。c后期的类型不能改,所以它是静态。Python后期的类型可以修改 ,故动态类型。

    强,弱类型之分是 看不同类型之间是否可以 运算。 js 中可以 "a" +1  = “a1” ,所以它是弱类型,Python中则直接报错。故Python是强类型的语言。

    总结:Python是动态类型,强类型的语言。  

    运算符:

     1 #并不是所有的逻辑表达式的结果一定是 True 和 False
     2 print(1 or False)  #1  看到1就可以判断了,故返回1
     3 print(1 or 3) # 1
     4 print(True or 1) # True  看到True就可以判断了,故返回True
     5 print(0 or False) #False
     6 print(0 or False or 6) #它先算前两个 得到print(False or 6) 于是输出6
     7 print(1 or False or 6) #它先算前两个 得到print(1 or 6) 于是输出1
     8 print(1 or False and 6) #它先算后两个 得到print(1 or False) 于是输出1  #and 优先级高于 or  
     9 
    10 print(0 and True) #0
    11 print(1 and 3) #3
    逻辑运算符注意点!!!

    程序的输入和输出:

    四种输入方式:

    三种输出方式:

    总结:

    Python3 中的input 相当于 python2 中的raw_input () 它把里面的东西看做是 字符串。 

    而,Python2 中的input 是用户输入的内容看做是 代码

    Python3只有Input()  而且 ,它相当于Python2 中的raw_input()  。 

    Python的 输出:

    end 默认是 ‘ ’ 

    file默认是标准的输出。  可以改为一个文件句柄,然后print()输出就是输出到改文件中了。 

    flush 如果写成flush = True 就是立即输出 。

    将缓冲区的内容刷出去的几个条件。

    其中有个条件就是print()中有个换行

    或者程序执行完毕

    或者flush = True .

    看代码:

    import time
    
    print("勤奋的健身卡发的说法" ,end="") #end 不是换行,此时就不会触发刷出缓冲区操作了,所以此时 该话不会立即出现,而是等待3s 到程序执行结束时刷出 缓冲区!
    time.sleep(3)
    不会立即显示!
    1 import time
    2 
    3 print("勤奋的健身卡发的说法" ) #end 是换行,此时就会立马触发刷出缓冲区操作了,所以此时 该话会立即出现
    4 time.sleep(3)
    会立即显示!!!

    Python的占位格式符:

    完整的形式:

    中括号可以省略。

    name的用法:

    width的用法:

    flag的用法:

    总结:

     

    Python 小节案例:

    1,先要进行功能分析:

    2,分析各个功能是否有技术难点:

    输入没有难点,就是使用Input

    关于体脂率:

    3,然后就可以进行实际代码编程了。

    Python分支语句:

    单分支if 

    二分支if else 

    多分支if elif else 

    Python分支中的注意点:

    Python 中没有 switch case  

    switch case 是用来进行多分支的!

    while循环/ for循环  与else 连用:

    1 if __name__ == '__main__':
    2     num = 0
    3     while num < 10:
    4         print(num)
    5         num += 1
    6     else:
    7         print("我执行完毕了")
    代码

    :它这个else 是个奖励,如果将所有的循环都顺利执行完毕(没碰到break),这时就执行else 

    1 if __name__ == '__main__':
    2     num = 0
    3     while num < 10:
    4         print(num)
    5         num += 1
    6         if num == 5:
    7             break
    8     else:
    9         print("我执行完毕了")
    此时由于在循环中碰到了break ,所以就不会获得奖励else了。

    同理,for 循环 和 while 循环的情况一致。

    1 if __name__ == '__main__':
    2     for i in range(10):
    3         print(i)
    4     else:
    5         print("我执行完了")
    获得奖励else ,执行else语句。
    1 if __name__ == '__main__':
    2     for i in range(10):
    3         print(i)
    4         if i == 5:
    5             break
    6     else:
    7         print("我执行完了")
    不会执行else语句。

    for 循环 反转字符串:

    1 if __name__ == '__main__':
    2     name = "Hello world! I love you!"
    3     res = ""
    4     for c in name:
    5         res = c +res  #把取出的字符 放前面。。。
    6     print(res)  
    View Code

    Python循环--99乘法表:

    1 if __name__ == '__main__':
    2     for i in range(1,10):
    3         for j in range(1,10):
    4             if i>= j:
    5                 print("%d * %d = %d  "%(j,i,i*j),end = " ")
    6         print()
    for循环 99 乘法表
  • 相关阅读:
    MySQL的用户名不记得了怎么办?
    辨析:机器字长、存储字长、指令字长和操作系统位数
    基于Flask框架搭建视频网站的学习日志(六)之数据库
    基于Flask框架搭建视频网站的学习日志(三)之原始web表单
    基于Flask框架搭建视频网站的学习日志(二)
    Docker 容器的网络连接 & 容器互联
    Docker DockerFile文件指令 & 构建
    linux :没有找到 ifconfig netstat
    ubuntu : 无法安全地用该源进行更新,所以默认禁用该源。
    Docker 守护进程的配置和操作 & 远程访问
  • 原文地址:https://www.cnblogs.com/zcb070812/p/11840302.html
Copyright © 2011-2022 走看看