Python学习 – 概览
admin
2023-07-31 01:49:02
0

最近空了些,学习一些有意思的东东。主要是看网上的教材,这篇也是边看编写的。

Python教程

输入和输出

输入:raw_input(),输入形式为字符串格式

>>> name = raw_input(\'input sth:\')
input sth:Michael
>>>name
\'Michael\'
>>>birth = int(raw_input(\'birth: \'))
birth: 1485
>>> birth
1485

这样就把输入的字符串转换为整型了。

输出:print

print \'The quick brown fox\', \'jumps over\', \'the lazy dog\'
>>> The quick brown fox jumps over the lazy dog

数据类型和变量

Python可以没有大括号{}和分号,用缩进替代{},程序区分大小写。

比如:

name = raw_input(\'enter a number:\')
if name >= 0:
    print name 
elif name < 0:
    print -name
else:
    print \'not a number\'

包括了整数(ox表示十六进制),浮点数(1.23e9=1.23 x 10的9次方),字符串(\\为转义字符),布尔值(True,False,可以用and,or,not运算),空值(None)

数据类型包括变量和常量。常量通常用大写字母表示(类似C++的define)。

Python的变量赋值类似指针

a = \'ABC\'
b = a
a = \'XYZ\'
print b

最后结果是XYZ

字符串和编码

计算机能处理的是二进制文件,就需要把字符串转化为二进制数字进行保存。最早时采用的是ASCII编码方式,用一个字节(8位)把字母编码到计算机里,比如A对应数字65z对应122。其他语言也需要进行相应的编码,比如GB2312编码中文(两个字节)。在不同语言采用不同编码保存时,读取字符串就成了问题。

因此有了Unicode,把所有语言用一种方式编码。但有时Unicode占用内存较浪费,比如A只需要一个字节的内存,事实上多过一个字节,就又有了UTF-8编码,智能化字符串的编码方式,节省内存。

Unicode转换为UTF-8保存到文件::

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器::

文件保存的是UTF-8的编码方式,打开时变为Unicode编码方式。

Python的出现比Unicode早,普通的字符串用ASCII编码

>>> ord(\'A\')
65
>>> chr(65)
\'A\'

后来增加了对Unicode的支持

>>> print u\'中文\'
中文
>>> u\'中\'
u\'\\u4e2d\'

Unicode编码转换未utf-8编码

>>> u\'ABC\'.encode(\'utf-8\')
\'ABC\'
>>> u\'中文\'.encode(\'utf-8\')
\'\\xe4\\xb8\\xad\\xe6\\x96\\x87\'

utf-8转换为unicode

>>> \'abc\'.decode(\'utf-8\')
u\'abc\'
>>> \'\\xe4\\xb8\\xad\\xe6\\x96\\x87\'.decode(\'utf-8\')
u\'\\u4e2d\\u6587\'
>>> print \'\\xe4\\xb8\\xad\\xe6\\x96\\x87\'.decode(\'utf-8\')
中文

在代码中包含中文时,就需要用UTF-8编码读取,在文件头加一行

# -*- coding: utf-8 -*-

Python也可以使用格式化输出。

>>> \'Hello, %s\' % \'world\'
\'Hello, world\'
>>> \'Hi, %s, you have $%d.\' % (\'Michael\', 1000000)
\'Hi, Michael, you have $1000000.\'

使用list和tuple

list类似objective-c下的NSMutableArray,

>>> classmates = [\'Michael\', \'Bob\', \'Tracy\']
>>> classmates
[\'Michael\', \'Bob\', \'Tracy\']

可以使用len(classmates)计算list元素个数,classmates[-1]获取list最后一个
元素。

在list最后增加一个元素

>>> classmates.append(\'Adam\')
>>> classmates
[\'Michael\', \'Bob\', \'Tracy\', \'Adam\']

在某个index插入一个元素

>>> classmates.insert(1, \'Jack\')
>>> classmates
[\'Michael\', \'Jack\', \'Bob\', \'Tracy\', \'Adam\']

删除list的最后一个元素classmates.pop(),删除某个index的元素classmates.pop(i)

tuple是另一种有序元祖,与list类似,但是tuple一旦初始化后就不能修改了。

>>> t = (1, 2)
>>> t
(1, 2)

如果只定义一个元素,采用t = (1),则t不是一个tuple,而是一个整形数字,因为()也可以认为是数学公式中的小括号。可以通过加上,来区分tuple和单个数字t = (1, ),python在显示只有一个元组的tuple时,也会加上,

tuple也可以是可变的,比如:

>>> t = (\'a\', \'b\', [\'A\', \'B\'])
>>> t[2][0] = \'X\'
>>> t[2][1] = \'Y\'
>>> t
(\'a\', \'b\', [\'X\', \'Y\'])

tuple有一个元素是list,而list是可变的。这段代码的两幅图:

条件判断

两段代码就可以大概知道Python下的if else了。

Python省去了{},使用缩进代替。

age = 3
if age >= 18:
    print \'your age is\', age
    print \'adult\'
else:
    print \'your age is\', age
    print \'teenager\'
age = 20
if age >= 6:
    print \'teenager\'
elif age >= 18:
    print \'adult\'
else:
    print \'kid\'
#如果只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False
if x:
    print \'True\';

Python下的for循环

names = [\'Michael\', \'Bob\', \'Tracy\']
for name in names:
    print name
sum = 0
for x in range(101):
    sum = sum + x
print sum

range(101) = [0,1,2,3....100]

还有一种是while循环

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 1
print sum

使用dict和set

dict是一种key-value数据存储格式。

>>> d = {\'Michael\': 95, \'Bob\': 75, \'Tracy\': 85}
>>> d[\'Michael\']
95

判断某dict中是否存在某个键值。

>>> d.get(\'Thomas\')
>>> d.get(\'Thomas\', -1)//-1为自定义返回值
-1
>>> \'Thomas\' in d
False

pop(key)删除dic中的某个特定键值对,比如d.pop(\'Bob\')

string对象在Python中是不可变的。

>>> a = \'abc\'
>>> b = a.replace(\'a\', \'A\')
>>> b
\'Abc\'
>>> a
\'abc\'

a.replace(\'a\',\'A\'),返回一个新的字符串Abc,原来的a并没有改变。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...