##1.python的安装##
1.去官网下载源码安装包
2.解压安装包到/opt/目录下
3.解决编译过程中需要的依赖包:gcc,zlib,zlib-devel,openssl-devel
–prefix=安装路径 --with-ssl:添加ssl加密
。/configure --prefix=/usr/local/python3–with-ssl
-安装:make && make install
添加python3的命令到环境
echo KaTeX parse error: Expected 'EOF', got '#' at position 8: PATH #̲临时添加 export PAT…PATH"
#永久添加#
echo export PATH=“python3锁在路径:$PATH" >> ~/.bashrc
#重新读取配置文件#
source ~/.bashrc
#2.python介绍#
python是一种解释性语言,python速度稍慢。但是python的跨平台能力强,
虽然python的速度稍慢,但是用户体验却是一样的,python不需要编译器。
##3.pycharm的安装##
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用python语言开发时提高效率的工具,
比如调试、语法高亮、只能提示等功能,此外,该IDE提供了一些高级功能,以用于支持Django框架下的
专业web开发。
安装
首先解压压缩包,之后切换到bin下,运行程序。注意:此时应该以普通用户身份运行。
选择python3.6
调整字体
调整快捷键
pycharm的快捷键
##4.python的第一个程序##
#coding:utf-8 ##为了方便输入中文##
1.没有分号
#2.严格按照缩进的语言
print ‘hello’
print’python’
##5.python中的变量##
python中的变量是一种引用
qq_num=1234
a = qq_num
print(a)
print(qq_num)
qq_passwd=45678
print(qq_passwd)
##6.python的输入输出##
输入
python2
-input:只支持数值类
input(‘Num:’)
Num:a
Traceback (most recent call last):
File “”, line 1, in
File “”, line 1, in
NameError: name ‘a’ is not definedinput(‘Num:’)
Num:2
2input(‘Please Num:’)
Please Num:3
3help(input)
#希望密码输入不回显
import getpass # 导入第三方模块库
num = getpass.getpass(‘请输入密码:’)
请输入密码:num
‘123’
-raw_input(接收字符串类型)
raw_input(‘请输入姓名:’)
请输入姓名:redhat
‘redhat’raw_input(‘请输入帐号:’)
请输入帐号:123
‘123’
age = raw_input(‘请输入年龄:’)
请输入年龄:18age
‘18’type(age)
<type ‘str’>age > 19
Trueint(age)
18age > 19
True
#如果接收的值要进行数值比较时,一定要转化为同种类型
int(age) > 19
False
python3
-input(接收的为字符串类型的数据,没有raw_input)
num = input()
12num
‘12’name = input()
westosname
‘westos’
#-输出:
#格式化输出
%s:代表字符串 %d:整型
In [4]: name = ‘westos’
In [5]: age =11
In [6]: print(’%s的年龄为%d’ %(name,age))
westos的年龄为11
In [7]: name = ‘redhat’
In [8]: print(’%s的年龄为%d’ %(name,age))
redhat的年龄为11
In [9]: age =‘18’
In [10]: print(’%s的年龄为%d’ %(name,age))
TypeError Traceback (most recent call last)
in
----> 1 print(’%s的年龄为%d’ %(name,age))
TypeError: %d format: a number is required, not str
In [11]: print(’%s的年龄为%s’ %(name,age))
redhat的年龄为18
#%f:代表浮点型
In [12]: money = 8463.31313
In [13]: print(’%s本月的工资为%f’ %(name,money))
redhat本月的工资为8463.313130
In [14]: money = 7000
In [15]: print(’%s本月的工资为%f’ %(name,money))
redhat本月的工资为7000.000000
#%.2f:保留小数点后两位
In [16]: print(’%s本月的工资为%.2f’ %(name,money))
redhat本月的工资为7000.00
In [17]: print(’%s本月的工资为%.3f’ %(name,money))
redhat本月的工资为7000.000
In [18]: print(’%s本月的工资为%.4f’ %(name,money))
redhat本月的工资为7000.0000
In [19]: print(’%s本月的工资为%.1f’ %(name,money))
redhat本月的工资为7000.0
.3d%:整型总占位数,不够的前面补0
In [20]: sid = 1
In [21]: print(’%s的学号为130%d’ %(name,sid))
redhat的学号为1301
In [22]: print(’%s的学号为111%d’ %(name,sid))
redhat的学号为1111
In [23]: print(’%s的学号为222%d’ %(name,sid))
redhat的学号为2221
In [24]: print(’%s的学号为130%.3d’ %(name,sid))
redhat的学号为130001
In [25]: print(’%s的学号为130%.4d’ %(name,sid))
redhat的学号为1300001
In [26]: print(’%s的学号为130%.5d’ %(name,sid))
redhat的学号为13000001
n [29]: scale = 0.1
In [30]: print(‘数据反而比例是 %.2f’ %(scale * 100))
数据反而比例是 10.00
In [31]: print(‘数据反而比例是 %.2f%’ %(scale * 100))
ValueError Traceback (most recent call last)
in
----> 1 print(‘数据反而比例是 %.2f%’ %(scale * 100))
ValueError: incomplete format
In [32]: print(‘数据反而比例是 %.2f%%’ %(scale * 100))
数据反而比例是 10.00%
##7.python常用的数据类型##
#数值类型
1.整型
In [33]: a = 8
In [34]: type(a)
Out[34]: int
In [35]:
python2:有长整型
python3:没有长整型
a = 111111111111111111111111111111111
type(a)
<type ‘long’>
========================================================
In [35]: a = 111111111111111111111111111
In [36]: type(a)
Out[36]: int
浮点型
In [37]: aFloat = 1.2
In [38]: type(aFloat)
Out[38]: float
字符串类型
In [39]: astring = ‘hello’
In [40]: type(astring)
Out[40]: str
In [41]: dir(astring)
Out[41]:
[‘add’,
‘class’,
‘contains’,
‘delattr’,
‘dir’,
数据类型的转换
在python中,所有的数据类型都可以作为内置函数,用来转换数据类型
In [44]: float(a)
Out[44]: 1.0
In [45]: b = 2.3
In [46]: int(b)
Out[46]: 2
In [47]: float(b)
Out[47]: 2.3
In [48]: str(b)
Out[48]: ‘2.3’
In [49]: str = ‘123’
In [50]: int(str)
Out[50]: 123
In [51]: falot(str)
NameError Traceback (most recent call last)
in
----> 1 falot(str)
NameError: name ‘falot’ is not defined
In [52]: float(str)
Out[52]: 123.0
In [53]: str = ‘westos’
In [54]: float(str)
ValueError Traceback (most recent call last)
in
----> 1 float(str)
ValueError: could not convert string to float: ‘westos’
In [55]: int(str)
ValueError Traceback (most recent call last)
in
----> 1 int(str)
ValueError: invalid literal for int() with base 10: ‘westos’
In [42]: a = 1
In [43]: str(a)
Out[43]: ‘1’
布尔型
bool:只有两个值(True False)
a = 1
bool(a)
Truebool(0)
Falsea = ‘’
bool(a)
False
##8.python中常用的运算符##
算数运算符:+ - * / ** % //
####?
python2
5/2
2100/300
05/2.0
2.5100/300.0
0.3333333333333333from future import division
5/2
2.5100/300
0.3333333333333333
python3
In [56]: 5/2
Out[56]: 2.5
In [57]: 100/300
Out[57]: 0.3333333333333333
赋值运算符
In [62]: a = 1
In [63]: a+=1
In [64]: a
Out[64]: 2
In [65]: a-=1
In [66]: a
Out[66]: 1
In [67]: a += 1
In [68]: a
Out[68]: 2
In [69]: a *= 4
In [70]: a
Out[70]: 8
In [71]: a /= 4
In [72]: a
Out[72]: 2.0
In [75]: a = 4
In [76]: a %= 2
In [77]: a
Out[77]: 0
##9.python中的if判断语句##
if 要判断的条件:
条件成立的时候,要做的事情
…
else:
条件不成立的时候,要做的事情
“”"
1.定义一个变量
age = 18
age = 12
2.判断年龄是否满18岁
if age >= 18:
print(’~~~’, age)
else:
print(’@@@@%d’ % (age))
print(’@@@@@@@@@@@@@@’)
注意:else不用判断,编写程序时可以把最难表述的放在else里
if 要判断的条件:
条件成立的时候,要做的事情
…
elif:要判断的条件:
条件成立的时候,要做的事情
else:
条件不成立的时候,要做的事情
判断学生的等级
“”"
score = 70
if 90<score<=100:
grade = ‘A’
elif 80<score<=90:
grade = ‘B’
else:
grade =‘C’
print(grade)
要判断用户的输入是否为空
value = input(‘Value:’)
if value == ‘’:
print(‘请输入合法的值’)
if not value:
print(‘请输入合法的值’)
##10.if的逻辑运算符##
and:
条件1 and 条件2
两个条件同时满足,就返回True
只要一个条件不满足,就返回False
or:
条件1 or 条件2
两个条件只要有一个满足,就返回True
两个条件都不满足的时候,就返回False
“”"
age = -10
if age >=0 and age <=100:
print(‘年龄正确’)
else:
print(‘年龄不正确’)
python_score = 30
c_score = 20
if python_score > 60 or c_score > 60:
print(‘考试通过’)
else:
print(‘请继续努力’)
##11.求平均成绩练习题##
求平均成绩(python3解释器)
#- 输入学生姓名;
#- 依次输入学生的三门科目成绩;
#- 计算该学生的平均成绩, 并打印;
#- 平均成绩保留一位小数点;
#- 计算该学生语文成绩占总成绩的百分之多少?并打印。eg: 78%;
name = input(‘学生姓名:’)
chinese = float(input(‘语文成绩:’))
math = float(input(‘数学成绩:’))
english = float(input(‘英语成绩:’))
总成绩
sumscore = chinese + math + english
平均成绩
avgscore = sumscore / 3
求百分比
chinesepercent = (chinese / sumscore) * 100
print(’%s的平均成绩为%.2f’ %(name,avgscore))
print(‘语文成绩占总成绩的%.2f%%’ %(chinesepercent))
##12.if的综合练习##
1.从控制台输入要出的拳 —石头(1)/剪刀(2)/布(3)
2.电脑随即出拳–先假定电脑只会出石头,完成整体代码功能
3.比较胜负
石头 胜 剪刀
剪刀 胜 布
布 胜 石头
“”"
“”"
import random
random.randint(12,20) 返回[12,20]之间的整数
random.randint(12,12) 结果永远是12
random.randint(20,12) 下限必须小于上限
ValueError Traceback (most recent call last)
in
----> 1 random.randint(20,12)
“”"
“”"
导入随即工具包
注意:在导入工具包的时候,应该将导入的语句,放在文件的顶部
因为,这样可以方便下方的代码,在任何需要的时候,使用工具包中的工具
“”"
import random
1.从控制台输入要出的拳 —石头(1)/剪刀(2)/布(3)
player = int(input(‘请输入你要出的拳头:石头(1),剪刀(2),布(3):’))
2.电脑随即出拳–先假定电脑只会出石头
#computer = 1
computer = random.randint(1,3)
print(‘玩家选择的拳头是:%d 电脑选择的是:%d’ %(player,computer))
if ((player == 1 and computer ==2)
or (player ==2 and computer == 3)
or (player == 3 and computer ==1)):
print(‘玩家胜利~’)
为什么先写平局
elif player == computer:
print(‘平局~’)
else:
print(‘玩家输了~’)
##12.判断闰年的练习题##
判断闰年
用户输入年份year, 判断是否为闰年?
- year能被4整除但是不能被100整除 或者 year能被400整除, 那么就是闰年;
“”"
year = int(input(‘Year:’))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(’%d是闰年’ %(year))
else:
print(’%d不是闰年’ %(year))
##13.作业##
输入年、月,输出本月有多少天。合理选择分支语句完成设计任务。
输入样例1:2004 2
输出结果1:本月29天
输入样例2:2010 4
输出结果2:本月30天
用 if 判断输入的值是否为空?如果为空,报错Error。
根据用于指定月份,打印该月份所属的季节。
**提示: 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
“”"
year = input()
month = input()
if year == ‘’ or month == ‘’: ##此时的输入不能为整型,应该为字符串,否则不能判断是否为空##
print(‘error’)
else:
year = int() ##将年份与月份转换为整型,否则下面的判断无法进行##
month = int()
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) and (month == 2):
print(‘本月29天’)
elif month == (1,3,5,7,8,10,12):
print(‘本月31天’)
elif month == (4,6,9,11):
print(‘本月30天’)
else:
print(‘本月28天’)
if month == (3,4,5):
print(‘春天’)
elif month == (6,7,8):
print(‘夏天’)
elif month == (9,10,11):
print(‘秋天’)
else:
print(‘冬天’)