最近有点时间搞东西,想了想,搞搞python来耍耍。简单说一下,python是一种高级语言,初学不难(很多东西都是类似的,比如JAVA),往深的方向目前还没达到,刚刚开始探索了2天。。。
学习一门语言,首先就是要搭建环境,我这边直接在官网下载的python windows版,下载完毕直接安装,记住在安装的时候,有个path ,这个要勾选一下。
环境搭配好,接下来就是第一个程序了。
OK,大家都是从hello world 开始,那就开始吧,首先 python的语法结构,目前感觉和java类似,但是比java更简洁,比如:
打印 helloworld ,python : print('hello world') java: System.out.print("hello world"); 非常简洁,还有输入等等几乎都比java要简洁。python 还是可以去学的,可以做很多方面,比如也可以自动化测试,运维,后台开发,大数据啥的等等。
直接写demo吧,一眼明了。
环境搭建好之后,可以在cmd直接python, 然后直接输 要写的内容 ,写完后回车。也可以建个 .py文件,用python xx.py 的方式去执行编译。
##############################################by Fan 20180628 初学python#########################################
from _deftest_ import test_cell
L = [
['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']
]
print(L[0][0])
print(L[1][1])
print(L[2][2])
age = 17
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('small')
#age=None
if age:
print('True')
else:
print('False')
#input 输入int
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')
#BMI值 体质指数(BMI)=体重(kg)÷身高^2(m)
height = 1.75
weight = 80.5
bmi=(80.5/(1.75*1.75))
if 18.5<bmi<25:
print('体重过轻')
elif 25<=bmi<28:
print('体重过重')
elif 28<=bmi<32:
print('体重肥胖')
elif 32<=bmi:
print('严重肥胖')
#while 100以内所有奇数之和
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
#以下两种方式,分别算1-100的和 ============================================
# for循环方式 range()函数 生成一个整数序列
sum=0
for x in range(101):
sum=sum+x
print(sum)
# while循环方式
n=0
m=100
sum=0
while n < m:
n=n+1
# if n > 50 : #加上此判断条件,为了break 结束循环
# break
print('111==='+str(n))
# if n==50: #continue 跳出当前循环,进入下个循环
# continue
sum=sum+n
# print('222==='+str(sum))
print('1-100的值为:'+str(sum))
# 知识点
# dict python内置字典 (类似于java 键值对方式进行索引查找) dict的key必须是不可变对象
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d['Michael'])
d['Michael'] = 55 #替换数据
print(d['Michael'])
print('Thomas' in d) #判断Thomas是否在list表中
print('Bob' in d)
print(d.get('Thomas','不存在 Thomas')) #key不存在,可以返回None,或者自己指定的value:
d.pop('Bob') #删除某个
#调用函数
max(1,3,8,200) #取最大值
x = abs(100)
y = abs(-20)
print(x, y)
print('max(1, 2, 3) =', max(1, 2, 3))
print('min(1, 2, 3) =', min(1, 2, 3))
#print('sum([1, 2, 3]) =',str(sum([1, 2, 3])) )
#数据类型转换 int float str bool
#整数转换十六进制
n1 = 255
n2 = 1000
print(hex(n1))
print(hex(n2))
# 定义函数 (类似于java中的方法)
def my_abs(x):
if not
print(my_abs(11))
print(test_cell(30))
age=19
if age >= 18:
pass #占位符
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
print(move(2,3,2,0))
import math
def quadratic(a, b, c):
tt=a*x
上面的代码,可以直接copy,直接运行,看打印,需要注意的是,python对于 这个字体间隔敏感,不像java直接{} 来断尾,python换行以及间隔 要把握好 ,一般换行,如果是一句话没说完,那就要每行距离上一行要间隔4个字节,如果上一句话的语义已经说完,则直接在最前面写,不用间隔。
基本的数据类型:
整数、浮点、字符串、布尔、。。。。。。。。。变量、常量 (个人感觉,基本与java一样)
编码转换、list 、条件语句。循环语句,上面都有例子,多看看,理解理解,没什么难的地方。还有一个知识点,math ()这个有关于数学的一个函数,这个肯定要记住,放在下面
math 函数 部分使用
# 函数 说明 实例
# math.e 自然常数e >>> math.e
# 2.718281828459045
# math.pi 圆周率pi >>> math.pi
# 3.141592653589793
# math.degrees(x) 弧度转度 >>> math.degrees(math.pi)
# 180.0
# math.radians(x) 度转弧度 >>> math.radians(45)
# 0.7853981633974483
# math.exp(x) 返回e的x次方 >>> math.exp(2)
# 7.38905609893065
# math.expm1(x) 返回e的x次方减1 >>> math.expm1(2)
# 6.38905609893065
# math.log(x[, base]) 返回x的以base为底的对数,base默认为e >>> math.log(math.e)
# 1.0
# >>> math.log(2, 10)
# 0.30102999566398114
# math.log10(x) 返回x的以10为底的对数 >>> math.log10(2)
# 0.30102999566398114
# math.log1p(x) 返回1+x的自然对数(以e为底) >>> math.log1p(math.e-1)
# 1.0
# math.pow(x, y) 返回x的y次方 >>> math.pow(5,3)
# 125.0
# math.sqrt(x) 返回x的平方根 >>> math.sqrt(3)
# 1.7320508075688772
# math.ceil(x) 返回不小于x的整数 >>> math.ceil(5.2)
# 6.0
# math.floor(x) 返回不大于x的整数 >>> math.floor(5.8)
# 5.0
# math.trunc(x) 返回x的整数部分 >>> math.trunc(5.8)
# 5
# math.modf(x) 返回x的小数和整数 >>> math.modf(5.2)
# (0.20000000000000018, 5.0)
# math.fabs(x) 返回x的绝对值 >>> math.fabs(-5)
# 5.0
# math.fmod(x, y) 返回x%y(取余) >>> math.fmod(5,2)
# 1.0
# math.fsum([x, y, ...]) 返回无损精度的和 >>> 0.1+0.2+0.3
# 0.6000000000000001
# >>> math.fsum([0.1, 0.2, 0.3])
# 0.6
# math.factorial(x) 返回x的阶乘 >>> math.factorial(5)
# 120
# math.isinf(x) 若x为无穷大,返回True;否则,返回False >>> math.isinf(1.0e+308)
# False
# >>> math.isinf(1.0e+309)
# True
# math.isnan(x) 若x不是数字,返回True;否则,返回False >>> math.isnan(1.2e3)
# False
# math.hypot(x, y) 返回以x和y为直角边的斜边长 >>> math.hypot(3,4)
# 5.0
# math.copysign(x, y) 若y<0,返回-1乘以x的绝对值;
# 否则,返回x的绝对值 >>> math.copysign(5.2, -1)
# -5.2
# math.frexp(x) 返回m和i,满足m乘以2的i次方 >>> math.frexp(3)
# (0.75, 2)
# math.ldexp(m, i) 返回m乘以2的i次方 >>> math.ldexp(0.75, 2)
# 3.0
# math.sin(x) 返回x(弧度)的三角正弦值 >>> math.sin(math.radians(30))
# 0.49999999999999994
# math.asin(x) 返回x的反三角正弦值 >>> math.asin(0.5)
# 0.5235987755982989
# math.cos(x) 返回x(弧度)的三角余弦值 >>> math.cos(math.radians(45))
# 0.7071067811865476
# math.acos(x) 返回x的反三角余弦值 >>> math.acos(math.sqrt(2)/2)
# 0.7853981633974483
# math.tan(x) 返回x(弧度)的三角正切值 >>> math.tan(math.radians(60))
# 1.7320508075688767
# math.atan(x) 返回x的反三角正切值 >>> math.atan(1.7320508075688767)
# 1.0471975511965976
# math.atan2(x, y) 返回x/y的反三角正切值 >>> math.atan2(2,1)
# 1.1071487177940904
# math.sinh(x) 返回x的双曲正弦函数
# math.asinh(x) 返回x的反双曲正弦函数
# math.cosh(x) 返回x的双曲余弦函数
# math.acosh(x) 返回x的反双曲余弦函数
# math.tanh(x) 返回x的双曲正切函数
# math.atanh(x) 返回x的反双曲正切函数
# math.erf(x) 返回x的误差函数
# math.erfc(x) 返回x的余误差函数
# math.gamma(x) 返回x的伽玛函数
# math.lgamma(x) 返回x的绝对值的自然对数的伽玛函数
我在网上找的一些关于math的基本用法和demo
,如果,上面的,你基本上搞定了,那就可以先去学一下用工具来写,毕竟直接用notepad敲这个,个人感觉还行,但是还是没有专业的来的舒服,大家可以下载一个工具 Pycharm ,30天免费试用,我看界面类似于androidstudio,用起来还凑合。
插一句 :def 类似于java中的方法
就在今天,我突然想用python搞个exe可执行文件,随便百度了下,瞎搞出来了
基本上步骤如下:因为要搞个界面,我这里用了个easygui.py 文件,这个文件个人感觉这个类似于android 中的module,你依赖它来做一些事情。这个文件可以在cmd直接下载安装,基本要实现这个exe (其他方法还有,我暂时么有去了解),步骤如下:
# 下载easygui==>pip install easygui 下载easygui插件
# 下载pyinstaller==>pip install pyinstaller pyinstaller:生成exe的可执行程序
# 生成exe ==>pyinstaller xx.py 编译生成
例子如下
import easygui as g
fields = ['*姓名','年龄','学历']
msg = '填写下面信息(*为必填项)'
title = '个人信息'
def multenterbox(msg, title, fields):
fieldvalue = g.multenterbox(msg, title,fields)
while True:
if fieldvalue == None:
break
errmsg = ''
for item in range(len(fields)):
option = fields[item].strip()
if fieldvalue[item].strip() == "" and option[0] == "*":
errmsg +=('[%s]为必填项。\n\n' % fields[item])
if errmsg == '':
break
fieldvalue = g.multenterbox(errmsg, title,fields, fieldvalue)
print('个人信息:%s' % str(fieldvalue))
multenterbox(msg,title,fields)
上面的import,就是导入插件资源 依赖
基本就这样,第2天学习,继续研究研究语法结构,具体的一些官方方法,我暂时记不住那么多,多敲多练,就慢慢掌握了,后面继续更新学习体会(大家一定要多敲多练习 这样才能敲出感觉)
20180629 下午
注:我是根据 廖雪峰官网上python教程来学的,大家有兴趣可以去看看,我上面的代码,都是理解加模仿加copy,强烈推荐此教程
地址:点击打开链接
多看多想多思考,Python 终有一天可以完全掌握