Python基础(Linux下)---python的认识,安装,数据类型,输入输出及分支语句

认识python

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。

除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。

许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。

龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

那Python适合开发哪些类型的应用呢?

首选是网络应用,包括网站、后台服务等等;

其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;

另外就是把其他语言开发的程序再包装起来,方便使用。

最后说说Python的缺点。

任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢?

第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。

但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。

不要在意程序运行速度

第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。

Linux下python的安装

安装python3:
1.拿到源码安装包(python3.6)—>去官网下载
2.解压安装包到/opt目录

tar zxf Python-3.6.4.tgz  -C  /opt/

3.安装编译过程中需要的依赖包:gcc,zlib,zlib-devel,openssl-devel
4.进入解压的安装包进行编译

                cd /opt/Python-3*
		# --prefix= :安装路径   --with-ssl      ####添加ssl加密
		./configure --prefix=/usr/local/python3 --with-ssl		
                安装:make && make install

5.添加python3的命令到环境变量中

echo  $ PATH           ####查看系统的环境变量
#临时添加
export PATH="python3命令所在的路径:$PATH"
#永久添加
echo export PATH="/usr/local/python3/bin:$PATH" >> ~/.bashrc
source ~/.bashrc

6.如何检测是否安装成功

    在命令行执行:python3

下载ipython:

 /usr/local/python3/bin/pip3 install ipython

IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。

Python2和Python3的区别:

print函数:

python3中print语句没有了,取而代之的是print()函数。

Unicode:
在python2中如果想要输出汉字类型的,必须在python源码文件的开头加上

#    *-*  coding:utf-8    *-*

在 Python 3,有了 Unicode (utf-8) 字符串,Python3.X 源码文件默认使用utf-8编码

除法
在python 2.x中/除法就跟我们熟悉的大多数语言,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。

在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。

输入:
在接下来的输入输出中会进行详细的介绍

当然还有一些比较细节的区别,读者可以自行查找资料。

Python的 数据类型

整型 int

In [14]: a = 1                                                          

In [15]: print(a)                                                       
1

In [16]: type(a)                                                        
Out[16]: int

浮点型 float

In [17]: b = 1.2                                                        

In [18]: type(b)                                                        
Out[18]: float

字符串类型 str

Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

In [19]: c = westos                                                     
------------------------------------------------------------------------
NameError                              Traceback (most recent call last)
<ipython-input-19-47a30bc3df16> in <module>
----> 1 c = westos

NameError: name 'westos' is not defined

In [20]: c = 'westos'                                                   

In [21]: type(c)                                                        
Out[21]: str

类型转换

In [22]: float(a)                                                       
Out[22]: 1.0

In [23]: int(b)                                                         
Out[23]: 1

In [24]: float(c)                                                       
------------------------------------------------------------------------
ValueError                             Traceback (most recent call last)
<ipython-input-24-36b90e4449a0> in <module>
----> 1 float(c)

ValueError: could not convert string to float: 'westos'

In [25]: str(a)                                                         
Out[25]: '1'

In [26]: str(b)                                                         
Out[26]: '1.2'


In [27]: d = '123456'                                                   

In [28]: d                                                              
Out[28]: '123456'

In [29]: int(d)                                                         
Out[29]: 123456

In [30]: float(d)                                                       
Out[30]: 123456.0


# 如何删除内存中的变量
In [31]: del a                                                          

In [32]: a                                                              
------------------------------------------------------------------------
NameError                              Traceback (most recent call last)
<ipython-input-32-3f786850e387> in <module>
----> 1 a

NameError: name 'a' is not defined

bool类型

bool:只有两个值(True False)
非0即真

In [34]: a =  1                                                         

In [35]: bool(a)                                                        
Out[35]: True

In [36]: bool(0)                                                        
Out[36]: False

In [37]: bool(1)                                                        
Out[37]: True

In [38]: bool(' ')                                                      
Out[38]: True

In [39]: bool('')                                                       
Out[39]: False

In [40]: bool(2412414)                                                  
Out[40]: True

python的输入和输出

程序:输入(键盘)----代码(java/python/c)----输出(屏幕)

输入:

pyhon2*

#-input:(只接收数值类型),当需要接受字符串类型的数据时,就要用到raw_input()

#>>> input()
#1
#1
#>>> num = input('请输入密码:')
#请输入密码:123456
#>>> print num 
#123456
#>>> num = input('请输入密码:')
#请输入密码:westos12345
#Traceback (most recent call last):
#File "<stdin>", line 1, in <module>
#File "<string>", line 1, in <module>
#NameError: name 'westos12345' is not defined
#
#raw_input(接收字符串类型)
#>>> name = raw_input('清输入用户名:')
#清输入用户名:tom
#>>> print name
#tom
#>>> name = raw_input('请输入年龄:')
#请输入年龄:18
#>>> print name
#18
#>>> type(name)
#<type 'str'>
#
#"""

变量的定义:

#在python中,每个变量在使用之前都必须赋值,变量赋值后该变量才会被创建
#等号(=):就是用来给变量赋值的
=左边是一个变量名
=右边是存储在内存中的值(被变量名所指向)
#变量名=值

python3:

(没有raw_input)

#input:接收的都是字符串类型
#In [1]: num = input()                                                   
#12
#
#In [2]: num                                                             
#Out[2]: '12'
#
#In [3]: name = input('请输入你的名字:')                                
#请输入你的名字:harry
#
#In [4]: name                                                            
#Out[4]: 'harry'
#

python的输出

“”"
格式化输出
在python中可以使用print函数将信息输出到控制台
如果希望输出文字的同时,一起输出数据
语法格式:
print(‘格式化字符串’ %(变量1,变量2…))
格式化字符串 含义
%s: 字符串
%d: 十进制的整数
%f: 浮点数
%%: 输出%
“”"

#1.定义字符串变量name,输出:我的名字叫小明,请多多关照

name = '大明'
sex = '男'
print('我的名字叫%s,请多多关照,我的性别是 %s' %(name,sex))

在这里插入图片描述
#2.定义整数变量student_num,输出:我的学号是000001

student_nu = 123456
 %06d:不到6位就补0,如果是6位,该是多少是多少
print('我的学号是 %06d' %(student_nu))

在这里插入图片描述
#3.定义小数 price,weight,money,输出:水果的单价是?元,购买了?斤,需要多少钱

price = 8.5
weight = 7.5
money = price * weight
#####%.2f:保留小数点后两位
print('水果的单价是%.2f元,购买了%.2f斤,需要多%.2f少钱' %(price,weight,money))

在这里插入图片描述
#4.定义一个小数scale 输出:数据比例是10.00%

#scale = 0.1
scale = 0.1 * 100
#print('数据比例是 %.2f%%' %(scale * 100))
print('数据比例是 %.2f%%' %(scale))

在这里插入图片描述

输入输出练习:

求平均成绩(python3解释器)
输入学生姓名;

  • 依次输入学生的三门科目成绩;
  • 计算该学生的平均成绩, 并打印;
  • 平均成绩保留一位小数点;
  • 计算该学生语文成绩占总成绩的百分之多少?并打印。eg: 78%;

代码:

name=input('请输入学生姓名:')
num1=float(input('chinese:'))
num2=float(input('math:'))
num3=float(input('english:'))
num=num1+num2+num3
#percent=(num1/num)*100
print('学生的姓名:%s' %(name))
print('该学生的平均成绩是:%.1f' %(num/3))
print('语文成绩所占百分比为:%.2f%%' %(num1/num *100))

在这里插入图片描述

算术运算符号

注意:
#先乘除后加减
#同级运算符是从左至右 计算
#可以使用()调整计算的优先级

In [1]: 1+2                                                             
Out[1]: 3

In [2]: 3-1                                                             
Out[2]: 2

In [3]: 2*3                                                             
Out[3]: 6

In [4]: 6/3                                                             
Out[4]: 2.0

In [5]: 9/2                                                             
Out[5]: 4.5

In [6]: 9//2                                                            
Out[6]: 4

In [7]: 9%2                                                             
Out[7]: 1

In [8]: 2**2                                                            
Out[8]: 4

判断语句(if)

if 要判断的条件:
条件成立的时,要做的事情
else:
条件不成立的时候,要做的事情

注意:代码的缩进为一个tab键,或者四个空格(tab键和空格不要混用)

#age = 13
#if age >= 18:
#print('允许进入网吧')
#else:
#print('未成年,不允许进入网吧')
#
#print('~~~~~~~~~~~~~')
#

逻辑运算符

and:
条件1 and 条件2
两个条件同时满足,返回True
只要有一个不满足,就返回False

or:
条件1 and 条件2
两个条件只要有一个满足,返回True
两个条件都不满足,返回False

not:
对一个条件取反:not 条件

age = -120
if age >= 0 and age <=120:
	print('年龄正确')
else:
	print('年龄不正确')

print('=======================')

python_score = 60
c_score = 55

if python_score > 60 or c_score > 60:
	print('考试通过')
else:
	print('请继续努力')


is_employee = False
if not is_employee:
	print('非本公司员工,请勿入内')


print('=======================')
holidy_name='情人节'

if holidy_name == '情人节':
	print('看电影')
	print('买玫瑰')
elif holidy_name == '生日':
	print('买蛋糕')
	print('买口红')
elif holidy_name =='圣诞节':
	print('买苹果')
else:
	print('每天都是节日!')

修改不同初始值可以得到不同结果,读者可以自己去多次尝试
在这里插入图片描述

if语句的案例:

一.需求:
1.从控制台输入要出的拳 —石头(1)/剪刀(2)/布(3)
2.电脑随即出拳,完成整体代码功能
3.比较胜负
#石头 胜 剪刀
#剪刀 胜 布
#布 胜 石头

代码:

import random
desktop=random.randint(1,3)
wanjia=int(input('请输入你出的是石头1还是剪刀2还是布3:'))
print('desktop出的是:%d' %(desktop))
print('wanjia出的是:%d' %(wanjia))
if desktop==wanjia:
        print('平局')
elif (desktop==1 and wanjia==2) or (desktop==2 and wanjia==3) or (desktop==3 and wanjia==1):
        print('desktop win')
else:
        print('wanjia win')

在这里插入图片描述

二.需求:
判断闰年?
#用户输入年份year, 判断是否为闰年?
#- year能被4整除但是不能被100整除 或者 year能被400整除, 那么就是闰年;

代码:

year=int(input('请输入年份:'))
if (year%400==0) or (year%4==0 and year%100!=0):
        print('闰年')
else:
        print('不是闰年')

在这里插入图片描述

练习题:

1.输入年、月,输出本月有多少天。合理选择分支语句完成设计任务。
代码:

 year=int(input('请输入年份:'))
month=int(input('请输入月份:'))
if month==2:
    if (year%400==0) or (year%4==0 and year%100!=0):
        print('本月有29天')
    else:
        print('本月有28天')
elif month==1 or 3 or 5 or 7 or 8 or 10 or 12:
    print('本月有31天')
else:
    print('本月有30天')

在这里插入图片描述
2.用 if 判断输入的值是否为空?如果为空,报错Error
代码:

num=input('请输入值:')
if num=='':
    print('Error')
else:
    print('正确')        

在这里插入图片描述
3.根据用于指定月份,打印该月份所属的季节。
**提示: 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
代码:

month=int(input('请输入月份:'))
if month>=3 and month<=5:
    print('春季')
elif month>=6 and month<=8:
    print('夏季')
elif month>=9 and month<=11:
    print('秋季')
else:
    print('冬季')

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37206112/article/details/84239126