爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12781|回复: 2

[经验总结] Python学习之一:数据类型及基本运算篇

[复制链接]

新浪微博达人勋

发表于 2017-10-5 18:15:26 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 cqhawk 于 2017-10-7 07:46 编辑

       有人可能会问,网上到处都能查到,为什么还要到这来写或者说是抄呢,是不是有些哗众取宠啊。哈哈,原因有三,其一,这个板块是气象家园专开的python板块,是我们气象人从气象应用的角度来看python的,俗话说得好,有需求才有动力。本人是新手,才开始学习python,不能像大神们那样写出很牛的应用代码以供大家直接参考,所以只有先从学习一门语言的角度出发,写写自己的学习心得,以和大家共勉,也算增加一点本版块的人气;其二,本着对python的崇拜,虽然本周才开始接触,但已经为它的灵活性所折服,个人感觉结合了c++和matlab等语言的优点,既可以像matlab那样把一个很复杂的运算用一行代码搞定,也可以像c++那样结合实际,面向对象,开发各种类(呵呵,可能本人认识还有些肤浅);其三,也是最重要的一点,因为本人很懒,记忆力也不好,通过整理,能理清思路,留给以后作为参考,更能督促自己坚持下去。哈哈,不瞎扯了,还是回到主题吧。
       Python作为一门语言,也和其他语言一样,具有最基本的数据类型和运算,只是表现形式略有不同,学过其他语言的童鞋都知道,每一个变量都有它的类型,只不过python语言的类型好像更为简洁,可能我理解有偏差,大家在学习的过程中去理解,反正我目前没有见到让我头疼的&,@之类的符号。
1.基本数据类型
      整型(也就是int类型,例如3),是一种数字类型,只不过python好像没有了short、unsigned short、int 、long等之分,也不需要在变量定义时加上int i=3,来给它一个身份了,只需要赋值时i=3,就知道是整型变量了,类型转化时只需要用到内置函数int()就可以了。这个在跨平台移植时相当方便,用c语言时总要考虑不同平台,给出一堆的#ifdef typedef之类,是不是有些方便呢。(特别提醒,变量定义时一定要赋初值)
     浮点型(也就是float型,例如3.0),好像也没有看到double了,不用加上var = 3.0f了
     复数(这个在matlab中也有,但c中得自己写程序来实现,例如3+5j),j表示虚部
     字符(char),这个,怎么找不到了,原来Python已经没有单独的字符类型,一个字符就是一个简单的长度为1的字符串。
     字符串(string),这个是变量中相对来说用得多,也相对复杂一些的,我得专门学习,简单来说,就是用“ ” or ‘ ’包起来的一堆字符组合,它们有区别吗?更多的回答是没有。
     十进制(Decimal,提供了十进制浮点运算支持)具体用法请参考https://docs.python.org/3/library/decimal.html#decimal.Decimal
      分数(Fraction,用来精确的数学表达式计算),具体请参考:https://docs.python.org/3/library/fractions.html#fractions.Fraction     bool型: true、false
2.四则运算
   +(加)、-(减)、*(乘)、/(除,注意它返回的始终是实数,即使是两个整型数字相除)、//(除法,类似于floor,取整,舍去),**(乘方)、round(四舍五入取整,注意4.5的结果为4)

3.逻辑运算
   and (逻辑与)、or(逻辑或)、not(逻辑非)(条件判断<、>、==、<=、>=、!=)
4.位运算
运算符
描述
示例
&
如果它存在于两个操作数中,则操作符复制位到结果中
(a & b) 结果表示为 0000 1100

                               
登录/注册后可看大图
如果它存在于任一操作数,则复制位。
(a

                               
登录/注册后可看大图
b) = 61 结果表示为 0011 1101
^
二进制异或。如果它是一个操作数集合,但不是同时是两个操作数则将复制位。
(a ^ b) = 49 (结果表示为 0011 0001)
~
二进制补码,它是一元的,具有“翻转”的效果。
(~a ) = -61有符号的二进制数,表示为1100 0011的补码形式。
<<
二进制左移,左操作数的值由右操作数指定的位数左移。
a << 2 = 240 (结果表示为 1111 0000)
>>
二进制右移,左操作数的值由右操作数指定的位数右移。
a >> 2 = 15(结果表示为0000 1111)
好了,今天就写到这吧,该吃早饭了,PS:很赞帖子的编辑功能,可以通过不断的学习,然后回头修改此贴,以使其更加完善,所以本人也就不担心这次写得对不对或者完不完整了,反正后面可以修改嘛,呵呵,还在过国庆节呢,祝大家国庆节快乐!



密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-6 01:12:38 | 显示全部楼层
重新编译下吧,换成代码块显示
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-10-7 07:37:01 | 显示全部楼层
又是那隻貓 发表于 2017-10-6 01:12
重新编译下吧,换成代码块显示

谢谢版主,第一次发帖,不怎么会编辑哈
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表