Python 初学(一)

最近有点时间搞东西,想了想,搞搞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 终有一天可以完全掌握



猜你喜欢

转载自blog.csdn.net/mapeifan/article/details/80859402