python的基础入门

python的语法,我觉得可以总结成四句话,非常简洁有用,感觉这4条是Python语言区别于其他语言的显著特点

1、冒号对齐法,以冒号显示层级。

2、变量无类型,对象有类型

3、符号化的数据结构,tuple,list,dict,set

4、一切皆对象,函数也是对象

我们从Python的流行应用场景发现,3条是其广泛应用的原因之一,非常方便列表运算。

 

第一部分是Python语言中基础中的基础,内置函数

    1、类型转换   str(x)          将对象x转换为字符串

    2、其他功能函数: sorted(), len()

 

    第二部分是Python基本概念辨析,结合新手经常出错的问题进行简单总结。

    3.2 序列
    序列是初学者最头疼的一个问题了,概念太多,许多人还是数组概念范儿,Python已经进化了。

    序列有一下几种:
    列表、元组、字符串、Buffer和xrange,初学者最容易混淆的是序列、列表、元组和字符串。

    序列,是指有序集合排列。所有序列都具有索引、分片、加、乘、成员资格、长度、最大和最小的内在函数。这是共性!

    但是,针对序列中具体的类型而言,又有差异。比较灵活的是列表,我们管它叫“韦小宝”,除了序列共性函数外,列表具有append()、count()、extend()、index()、insert()、reverse()、sort()、remove()等方法,以及直接对其中个别元素或分片元素进行赋值或删除,叫他韦小宝就是因为它太灵活。

    不过元组就不一样了,它是个“木头人”,它不能够改变内部的内容,是不可变序列,所以只能使用共性函数。它的主要应用是键值处理上,这是后话了。

    此外,字符串不是元组,因为元组就是形如(1,2,3)的序列,但和元组很像,字符串也不能直接改变其中的值,比如:
点击(此处)折叠或打开
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> x = [1,2,3]
>>> x[0] = 9
>>> x
[9, 2, 3]
>>> y = (1,2,3)
>>> y[0] = 9

Traceback (most recent call last):
  File "", line 1, in <module>
    y[0] = 9
TypeError: 'tuple' object does not support item assignment
>>> z = "abc"
>>> z[0] = 'A'

Traceback (most recent call last):
  File "", line 1, in <module>
    z[0] = 'A'
TypeError: 'str' object does not support item assignment
>>>

    3.3 三目运算
    Python没有C语言中的三目运算符'?',但可以构造出来:
    (1) expr=判断表达式 and expr1 or expr2,不安全,不推荐使用
    (2) min(x,y)=(x
    (3) 当然从Python2.5起,内置了一个条件表达式:a if b else c。当b为真返回a,b为假返回c。这个也是很好用的哦。

    附一个我改编过的例子,其中就用到了第二种方法:
点击(此处)折叠或打开

#使用人名作为键

复制代码
people={
        'Alice':{
                'phone':'123456',
                'addr':'Foo drive 39'
            },
        'Beth':{
                'phone':'888888',
                'addr':'Ok street no23#'
            },
        'Cecil':{
                'phone':'666666',
                'addr':'Baz avenue 90'
            }
    }
labels = {
        'phone':'Phone Number',
        'addr':'address'
    }

name = raw_input('Name:').title()
request = raw_input('What\'s your want to search?Phone Number(P) or Address(A)?')
key = (request.lower() == 'p' and ['phone'] or ['addr'])[0]

if name in people:
    print "%s's %s is %s" % (name,labels[key],people[name][key]) 
else:
    print "User %s is not exist." % name
复制代码

 

posted @   懂得了才能做一些改变  阅读(184)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示