欢迎来到我的Python学习之旅,在这里你将学会Python语言的基础知识,了解到一些IT届中一些有趣的事,体验头脑风暴。新人上路,写得有哪里不对的地方还请各位朋友批评指正。

有人说编程之路是枯燥无味的,但我并不这么觉得,因为学习编程可以让你的思维变得严谨并且充满逻辑性(直男癌晚期),这会让你在复杂的任务中做出最简单且最合理的安排。

1.开个头吧

编程语言vs自然语言

二者最大的区别在于,自然语言根据不同的上下文,会有不同的理解。而编程语言是计算机所要依据的指令,所以绝不允许有歧义。举个例子:我们知道人都是有情绪的,那么当你想要表达愤怒的时候,你可能会来一句“卧槽!”,当你想要表达惊讶的时候,你也会来一句“卧槽!?”当你想要表达痛苦的时候,你也有可能来一句“卧槽……”。但是计算机不允许语言有歧义性,哪怕你用一百种声调去跟他说“卧槽”,那它也只是会当成两个字符“卧”和“槽”去处理。

与自然语言类似,编程语言当然也有其自己的语法。

Python的语法比较简单,采用缩进的方式。如下所示:

#print absolute value of an integer
a = input("请输入一个数")
a = float(a)
if a >= 0:print(a)
else:print(b)
----------------------------------------------------------
请输入一个数:123
123.0

以#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号结尾是,缩进的语句视为代码块。

缩进有利有弊。好处是能强迫你写出格式化的代码,但是没有规定缩进是几个空格还是Tab。但是按照约定俗成的管理,你应该始终坚持使用4个空格的缩进。

缩进的另一个好处是强迫你写出缩进较少的代码,你会倾向于把一段很长的代码拆分成若干函数,从而得到缩进较少的代码。

缩进的坏处就是“Ctrl+c,Ctrl+v”功能失效了,这是最最最坑爹的地方。因为Python中的代码块不是像Java和C等语言中用大括号分割的,所以当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。此外,IDE很难像格式化Java代码那样格式化Python代码。

最后,请务必注意,Python程序是区分大小写的,如果写错了大小写,程序会报错。

养成好的缩进习惯

Python使用缩进来组织代码块,请务必遵守约定俗成的规则,坚持使用4个空格的缩进。

在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不会混用Tab和空格。

2.数据类型及变量

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:

整型

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。计算机由于使用二进制,所以,有时候十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。或许我会另外写一篇文章讲述关于进制转换的问题。

浮点型

浮点型也就是小数,之所以称为浮点数,是因为按照科学计数法表示时,一个浮点数的小数位置是可变的,浮点数可以用数学写法,如1.23,3.14,-9.01等等。但是对于很大或者很小的浮点数,就必须用科学技术法表示,把10用e替代,1.23*10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

字符串型

字符串是以单引号‘’或者双引号“”括起来的任意文本,比如‘abc’,“xyz”等等。请注意,‘或“”本身只是一种表示方式,不是字符串的一部分,因此,字符串‘abc’只有a,b,c这三个字符。如果‘’本身也是一个字符,那就可以用“”括起来,比如“I'm OK”包含的字符就是I,',m,空格,O,K 这六个字符。

如果字符串内部既包含‘又包含“怎么办 ?可以使用转义字符来标识,比如:

print('I'm ok.')
print('--------------------------')
print('I'm learningnpython')
print('--------------------------')
print('n') 

通过上面几行代码我们可以发现,转义字符可以转义很多字符,比如n表示换行,t表示制表符,字符本身也要转义,所以表示的字符就是。

还有,如果需要转义的字符太多,就需要加很多的。为了简化,Python还允许用r''表示''内部的字符默认不转义

如果字符有很多换行,用n写在一行里不方便阅读,为了简化,Python允许使用'''......'''的格式表示多行内容,可以自己试一试,注意每个...后面要接一个空格。

print('''只怕我自己会爱上你~
不敢让自己靠的太近~
想念只会自己苦了自己~
爱上你是我情非得已~
''')

布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True和False两种值,要么是True,要么是False。在Python中,可以直接用True、False表示布尔值(注意大小写,Python是区分大小写的),也可以通过布尔运算计算出来:

jupyter中的运行结果

布尔值也可以用and or 和not运算,and是与运算,只有所有都为True,and 的运算结果才为True,否则就是False

jupyter中的运行结果

or是或运算符,只要有一个条件为True,or运算的结果就是True

jupyter中的运行结果

not是非运算符,他是一个单目运算符,把True变成False,False变成True

jupyter中的运行结果

以上布尔运算符经常用在条件判断中,请看如下代码:

age = input("请输入您的年龄")
age = int(age)
if age >= 18 and "谈恋爱":print("不算早恋")
elif age < 18 and "谈恋爱":print("早恋")

假如我输入我的年龄88岁,会输出什么呢?

空值
空值是Python里一个特殊的值,用`None`表示。`None`不能理解为`0`,因为`0`是有意义的,而`None`是一个特殊的空值。
此外,Python还提供了列表字典等多种数据类型,还允许创建自定义数据类型,我们后面会继续讲到。

  babyName = None #还没给你家孩子起名

变量

变量的概念基本上和初中代数的方程变量(未知数x)是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。
变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,比如:

a = 1 # 变量a是一个整数
transformer = "optimus prime" #变量transformer是一个字符串
Answer = True #变量Answer是一个布尔值

在Python中, 等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

a = 123 # a是整数
print(a)
a = 'ABC' # a变为字符串
print(a)

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):

int a = 123
a = "ABC" // 程序会报错,因为无法讲字符串赋值给整型变量

注意:请不要把=读作`等于`,它实际上是一个赋值操作.把等号右边的值赋给左边的变量,尝试理解下面的代码

 x = 10 x = x + 2print(x)  12 

常量
所谓常量就是不能变的量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:

PI = 3.14159265359

几点小补充
Python中共有两种除法 / 除法的结果是浮点数 // 除法的结果是整数
取余运算符 %
计算幂 **

请你猜想一下3 ** 1/2 这个的结果是多少?

3.字符串编码

之前已经说过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。
而且由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。
但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。
你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。

手持两把锟斤拷,口中疾呼烫烫烫

棍斤拷乱码:

源于GBK字符集和Unicode字符集之间的转换问题。Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER。那么U+FFFD的UTF-8编码出来,恰好是 'xefxbfxbd'。如果这个'xefxbfxbd',重复多次,例如 'xefxbfxbdxefxbfxbd',然后放到GBK/CP936/GB2312/GB18030的环境中显示的话,一个汉字2个字节,最终的结果就是:锟斤拷——锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)。

烫烫烫乱码:

在windows平台下,ms的编译器(也就是vc带的那个)在 Debug 模式下,会把未初始化的栈内存全部填成 0xcc,用字符串来看就是"烫烫烫烫烫烫烫",未初始化的堆内存全部填成0xcd,字符串看就是“屯屯屯屯屯屯屯屯”。也就是说出现了烫烫烫,赶紧检查初始化吧。。。

因此,为了解决以上问题,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。我们只需知道,现在最通用最流行的编码格式为UTF-8。也就是说前面那一大段都是屁话(笑)。

4.Python的字符串

搞清楚了令人头疼的字符串编码问题,我们再来研究Python的字符串.在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言,例如:

print('包含中文的str')

统计一个字符串里面有几个字符,要用到python的内建函数len(),关于内建函数(内置函数)我会另外开一专栏写文章

str1 = "风萧萧兮易水寒     "
print(len(str1))
------------------------
12

格式化
最后一个常见的问题是如何输出格式化的字符串。我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。

str1 = '毛爷爷'
print("伟大领袖%s"%str1)

常见的占位符有:
 %d 整数 、%f 浮点数 、 %s 字符串 其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

print('%.3f' % 3.1415926)
--------------------------
3.142

如果不太确定用什么, %s将永远起作用,可以将任意数据类型转化为字符串:

"Age: %s Gender: %s" % (25, 'Male')
---------------------------------'Age: 25 Gender: Male'

一个特殊情况,字符串里面本身含有百分号%,此时百分号需要转义,用两个百分号表示一个百分号

print('growth rate %d%%' % 8)
---------------------------------'growth rate 8%'

python开根号为整数_Python基础_1相关推荐

  1. maya python 开根号_maya python

    胡泳滨MayaPython简易教程,如需转载,请标明出处地址: http://huyongbin.blogbus.com/c3363976/ 谢谢配合! MayaPython第一篇 - 介绍 大家好, ...

  2. python qtextedit设置光标位置_Python基础命令学习——就这一篇文章就够了

    一.python的定义: python是一种计算机程序设计语言,是一种解释型.编程型的脚本语言. 发现有很多想要学习Python却不知道如何下手的朋友,我这里整理了一些关于Python的学习资料,从基 ...

  3. maya python 开根号,基于python不同开根号的速度对比分析

    我就废话不多说了,大家还是直接看代码吧~ import time import math import numpy as np def timeit1(): s = time.time() for i ...

  4. python不同数据类型的式子_Python 基础篇:数据类型、数据运算、表达

    1. 数据类型 1.1 数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-231-231-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取 ...

  5. python中根号怎么输入_python中根号怎么表示

    sqrt() 方法返回数字x的平方根. 以下是 sqrt() 方法的语法:(推荐学习:Python视频教程)import math math.sqrt( x ) 注意:sqrt()是不能直接访问的,需 ...

  6. python开多少进程合适_python多进程基础

    python中的多进程编程方式和多线程非常相似,几乎可以说只是换了一些函数,有了之前讲过的多线程基础,很多地方我就只展示一些代码,在涉及到差别的地方再着重说明. 本文分为如下几个部分事先说明 最简单的 ...

  7. python 用if判断一个数是不是整数_Python基础教程07-函数和模块的使用

    在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解. x1+x2+x3+x4=8 事实上,上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案.想到这一点问题的 ...

  8. python 根号化简_Python 基础

    一.解释器 如果想类似于执行shell脚本一样执行python脚本, 就需要在文件头部指定解释器 #! /user/bin/env python env 可以不加 加上代表全局. 二.编码 代码包含中 ...

  9. maya python 开根号_Python 编写Maya插件,从0到1(一)

    最近生活有点鬼畜,在忙着搞SD材质库的同时,还要负责美术工具的开发.没错--每一个初级TA都绕不过的坎儿-写工具-- 最关键是--我没写过--emmm--所以最近生活有点苦--踩坑踩的脚都瘸了-- 网 ...

最新文章

  1. Windows Forms Programming In C# 读书笔记 - 第三章 Dialogs
  2. java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class
  3. 成功解决 绘图时行坐标名或列坐标名出现f0、f1、f2、f3、f4、f5(或者Column_0、Column_1、Column_2、Column_3)等命名而不是想要的具体对应字段命名
  4. optee3.8 qemu_v8的环境搭建篇(ubuntu20.04)
  5. Centos 下安装redmine及设置发送邮件功能
  6. inline 内联函数详解 内联函数与宏定义的区别
  7. 10个你可能没用过的linux命令
  8. 有多少人自驾过独库公路?
  9. [转]netstat 输出内容详解,TCP链接握手对应state
  10. RTMP协议封装H264格式详解
  11. 基于Java的线上诊疗系统毕业设计源码1617411
  12. 伪标签(Pseudo-Labelling)
  13. ssh secure 安装mysql_centos7 安装mysql
  14. 一篇金融IT的论文开题报告
  15. 图文详解在Windows系统中安装JDK
  16. 【STM32】PWM输出原理
  17. 复活谷歌翻译流程(亲测好用)
  18. STM32 热敏电阻NTC的软件设计(ADC采集)
  19. 中文语法纠错论文解读(一)
  20. 擦除Mac上所有内容和设置的最快方法

热门文章

  1. cvte 前端一面 凉经
  2. 鸿蒙系统下的搜狗输入法,mac搜狗输入法-搜狗输入法Mac版下载 V6.0.3.12502-PC6苹果网...
  3. 【转载】巴塞尔问题(Basel Problem)的多种解法
  4. 云计算医疗行业解决方案的前世今生
  5. 文字冒险类游戏的制作
  6. oracle表空间 uniform,创建表空间时UNIFORM SIZE的通俗含义(翻译)
  7. 长字符串匹配(BWT编码、后缀数组、倍增算法、FM索引)
  8. Git 工具的下载安装
  9. 查看基于Android 系统单个进程内存 CPU使用情况的几种方法
  10. wangEditor富文本编辑器使用