Python入门的第一天

前言

    这是本人第一次写博客,写博客的目的就是为了加深自己对知识的理解与巩固,并且分享我的学习过程,与大家共同学习,共同进步,如果大家有什么建议,我非常欢迎与你讨论。本人最近在学习Python,如果有人也在学习,很乐意与你进行相互学习与进步!

一、Python简单介绍

    Python由一位叫吉多·范罗苏姆(Guido van Rossum)的荷兰人创作的,1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 1991年发布了第一个公开发行版。

二、Python是一门怎么样的语言

    很简单的一句话,是一门脚本语言。你可能会疑问,就是是一门怎么样的脚本语言呢疑问?那就再说具体一点,是一门动态解释型的强类型定义语言,看到这句话你可能会有点蒙了哭,心里是不是会冒出几个疑问,什么叫做动态类型、什么叫做解释型、什么叫做强类型?Good!下面给你解释一下,希望你能懂,反正我懂了,哈哈。

    动态类型AND静态类型

    (1)动态类型语言:简单一句话就是,程序在运行期间才去做数据类型检查的语言。如果这句话你懂了,那么就不用看下面的解释了!不懂的话就看看。也就是说哦,你在用动态类型语言编程时,不需要给变量定义类型,它会在变量赋值时,内部会自动保存下当前变量的数据类型!像Python、Ruby语言就是典型的动态类型语言。所以,记住在用Python编程时,不需要给变量定义类型哦。

    (2)静态类型语言:它刚好跟动态类型语言相反,意思就是程序在编译是,就会进行数据类型的检查,在定义变量时,需要指定数据的类型!想C/C++就是典型的静态类型语言,其实C#和JAVA也是。

   解释型AND编译型

    (1)解释型语言:也是一句话,源程序的运行和翻译是一起执行的,什么意思呢?就是说运行一条代码就将这条代码翻译成机器码跟计算机通信,它是不生成可执行文件的。这样的语言有其很大的优点,程序的运行控制权掌握在解释器的手上,你可以很好的进行调试代码,并且它的可移植性是非常好的,不需要改动任何代码,就可以移植到含有解释器的别的操作系统中运行。当然缺点就是执行效率低,暂用空间大,不仅要给用户程序分配空间,也要给解释器分配宝贵的系统资源。如Python、JavaScript、PHP、Ruby等都是解释型语言

    (2)编译型语言:程序的运行和翻译是分开的,程序在编译时生成可执行的二进制文件,计算机就可以直接以机器语言来运行可执行文件,运行效率高,速度快。如C/C++、GO、Swift都是编译型语言。

     强类型定义AND弱类型定义

    (1)强类型定义语言:意思就是,如果一个变量一旦被指定了某种数据类型,如果不经过强制类型转换,那么它永远是被刚开始指定的那种数据类型。例如,一个整形变量num,如果不经过强制类型转换,它是不可能被用来做字符串变量赋值的。

    (2)弱类型语言:和强类型语言相反,它是可以忽略变量类型的,一个整形变量num,也可以用作字符串变量而不用经过强制类型转换。

    不知道我上面的解释,你听清楚没,如果么有,可以去百度详细了了解一下呢!吐舌头

    上面说了这么多,我们可以得出下面结论:

三、Python优缺点

    都说Python入门容易,简单易学。确实,Python是优雅、明确、简单的,所以程序看上去会很简洁、简单,所以对于我这种初学者还是可以上手的,并且深入下去,可以用它写出非常复杂的程序来。下面来自网上的总结:

1.高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
2.可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
3.可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

4.可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

缺点: 速度慢、代码不能加密、线程不能利用多CPU等。

下面我们看看有关Python的解释器:

四、Python解释器

    当我们用Python开始编写代码时,我们就要创建一个以.py结尾的文件名,当我们运行我们已经编写好代码时,我们需要运行我们的代码,这时我们就需要一个名为Python解释器的东西来运行我们的代码。

    CPython:为什么叫做CPython呢?因为它是有C语言开发出来的,当我们运行Python时,它就启动运行了。CPython is Guido van Rossum's reference version of the Python computing language. It's most often called simply "Python"; speakers say "CPython" generally to distinguish it explicitly from other implementations.这是官网对它的描述。

     IPython:IPython是基于CPython之上的一个交互式解释器,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。

    PYPY:PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度。

五、Python安装

    说到安装Python,我们可能会抛出疑问,我们是安装Python2还是安装Python3呢?当然是Python3啦,官网都说2020年停止Python2了,对吧。那么Python2和Python3有什么区别呢?

    在我看来,就是Python3的功能更强大了,标准库更丰富了,兼容性更好了,是的,就是这样的。还有就是Python2的打印函数print可以不加括号,而Python3必须加括号进行打印。

    说到安装就更简单了,如果你是Linux系统,根本就不用进行安装,因为Linux系统自带了Python,多好啊对吧!如果你是Windows系统或者IOS系统,上官网下载一个版本(我用的是3.5版本,现在都出到3.6了),点击安装即可,然后配置一下系统环境变量,实在不会安装,百度上有太多太多的教程了,一看便会。安装完后就可以开启你的Python“入坑”之路了!

六、开启人生的第一个Hello Word程序

    在Linux下,创建一个Hello_Word.py的文件,如下:

    

    当然,如果你想在Linux中直接./Hello_Word,你就需要在代码最前面加上一句话:#!/usr/bin/env python,这句话的目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单!是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器。

    如果是Windows操作系统,按win+R,输入cmd


简单吧!注意,这里一定要打印Hello Word,有些喜欢打印其他的东西,我建议不要,为什么呢?因为形式很重要!哈哈哈哈!你看哪门的编程语言一开始不是打印Hello Word的呢!对吧。

对比其他语言Hello Word:

//C
1 #include <stdio.h>
2 int main(void)
3 {
4 printf("\nhello world!");
5 return 0;
6 }
 

//C++
1 #include <iostream>
2 int main(void)
3 {
4     std::cout<<"Hello world";
5 }
 
//JAVA
1 public class HelloWorld{
2   // 程序的入口
3   public static void main(String args[]){
4     // 向控制台输出信息
5     System.out.println("Hello World!");
6   }
7 }
 
//PHP
1 <?php  
2             echo "hello world!";  
3 ?> 
 
//Ruby
1 puts "Hello world."  

//GO
1 package main
3 import "fmt"
5 func main(){
6 
7     fmt.Printf("Hello World!\n God Bless You!");
8 
9 }

看出差异了吧!

对了!还有一点,如果你是在Windows上编写运行Python代码的,建议你用pycharm!关于它,你可以好好百度查查它。

七、变量

    变量的定义与赋值:

1 #!/usr/bin/env python
2 #-*- coding:utf-8-*-
3 
4 name = "dear_lin"
5 print(name)
6 
7 name1 = name
8 name = "Hello"
9 print(name,name1)
上面定义了nam变量,并且赋值为“dear_lin”,并且将name的值赋值给name1;

八、字符编码

    仔细看,你会发现我上的代码,加了一行#-*-coding:utf-8-*-这样的东东,是什么意思呢?有什么用呢?其实就是为了支持中文显示。相信都应该ASCII码吧!

    ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(即一个字节),即:2^8 = 256-1,所以,ASCII码最多只能表示 255 个符号。

    而对于中文为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。

    从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

    Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。

     UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

    还有一点,我们安装的Python,如果你是Python2的话,想显示中文,就得加上#-*-coding:utf-8-*-这句,不然会报错,而如果是Python3,则不需要,因为Python3已经默认自带了。

九、用户输入

 
1  #!/usr/bin/env python
2  #-*- coding:utf-8-*-
3 
4 name   = input("What your name")
5 passwd = input("What your passwd")
6 
7 print("name:"+name)
8 print("passwd:"+passwd)

 如果你想输入的密码是不可见的,你可以这样做:

 1 #!/usr/bin/env python
 2 #-*- coding:utf-8-*-
 3 
 4 import getpass
 5 
 6 name = input("What your name")
 7 passwd = getpass.getpass("Whart your passwd")
 8 
 9 print("name:"+name)
10 print("passwd:"+passwd)

十、表达式if esle、for循环、while循环

 1 #!/usr/bin/env python
 2 #-*- coding:utf-8-*-
 3 
 4 #猜数字游戏
 5 '''
 6 用户输入一个数字与程序设定好的数字相比
 7 如果用户输入的正确,打印猜对了
 8 如果用户输入的小了,打印猜小了
 9 如果用户输入的大了,打印猜大了
10 次数最多为3次
11 '''
12 
13 Right_number = 99
14 count = 0
15 
16  #这里也可以用for循环:for count in rang(3):
17 while count<3:        
18     #记住这里!input()函数默认输入的是字符串,所以要进行强制类型转换
19     usr_input_num = int(input("请输入一个数字:")) 
20     if usr_input_num == Right_number:
21         print("恭喜你!猜对了!")
22         break
23     elif usr_input_num < Right_number:
24         print("猜小了!")
25     else:
26         print("猜大了!")
27     count += 1
28         
29 else:
30     print("很遗憾!次数已达上限")

 好啦!今天就学这么多!欢迎大家评论与交流!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值