Python入门学习笔记第一天

开发工具

Python中的开发工具多种多样
 1. eclipse添加对应的插件即可
 2. notepad ++ 
 3. python官网下载的
 [注意]:python对首行很讲究不能用记事本word因为他们默认会会在文章头部添加看不到的Bom头

变量应用

求等差数列的前N项和
x1 = 1
d = 3
n = 100
x100 = x1+(n-1)*d
s = n*(x1+x100)/2
print s

可以用变量
x1 = 1 表示第一项的值 d = 3 表示公差 n = 100 表示前100项 x100 表示第100项的值
首先计算第N项的值:
x100 = x1 + (n - 1) * d
再根据公式
求和 s = (x1 + x100) * n / 2
print可以把变量的值打印出来。

数据类型

整数和浮点数
print 2.5 + 10 / 4.0 #5.0
print 2.5 + 10 / 4   #4.5
单引号和双引号用法
s = "I'm Ok"
ss='I "LOVE" you'
sss="I said \"I\'m OK\""
print s+"\n"+ss+"\n"+sss
打印结果:
I'm Ok
I "LOVE" you
I said "I'm OK"
多行字符串写法,加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了
print r'''text1
text2
text3'''
print r'\(~_~)/ \(~_~)/'
print'text1\ntext2\ntext3'
字符串还有一个**编码问题**。

因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。

如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。

Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

print u'中文'
中文
Unicode和utf-8是两种不同的编码方式,但都可以表示中文。

错误原因:编码冲突(Unicode VS utf-8)
解释:代码编辑第一行的注释#-*-coding:utf-8 -*-,表明以下Python代码使用utf-8编码,但是很多人把题目要求的输出语句写成print u'" ..."',这样就又要让解释器使用Unicode编码输出,导致解码出错。以何种方式编码就应以何种方式解码,否则就很有可能出现编码错误。
**列表**
Python内置的一种数据类型是列表:listlist是一种有序的集合,可以随时添加和删除其中的元素
由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:
L = ['Adam', 95.5, 'Lisa', 85, 'Bart', 59]
print L
print L[0]
print L[-1]#打印出倒数第一
print L.append('最后一个元素')
print L.insert(0,'插到第一位')
L.pop()#pop()方法总是删掉list的最后一个元素,并且它还返回这个元素L.pop(2)#删除指定索引处元素
L[0]='替换第一'#直接替换某索引的元素
 tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了
t = (1,2,3,4)
print t[-2]
因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:
>>> t = (1,)
>>> print t
(1,)
另一种形式可以变tuple内的值
t = ('a', 'b', ['A', 'B'])
t[2][0]='X'
print t[2]
输出结果:['X', 'B']
**条件控制语句if及循环语句**
age = 20
if age >= 18:
    print 'your age is', age
    print 'adult'
print 'END'
注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,上面的34print 语句就构成一个代码块(但不包括第5行的print)。如果 if 语句判断为 True,就会执行这个代码块。

缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。

注意: if 语句后接表达式,然后用:表示代码块开始。

如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车:

score = 85
if score >= 90:
    print 'excellent'
elif score >= 80:
    print 'good'
elif score >= 60:
    print 'passed'
else:
    print 'failed'

----------
一次取出列表中元素求出平局值
L = [75, 92, 59, 68]
sum = 0.0
for x in L:
    sum = sum + x
print sum / 4
利用 while True 无限循环配合 break 语句,计算 1 + 2 + 4 + 8 + 16 + ... 的前20项的和。
sum = 0
x = 1
n = 1
while True:
    if n>20:
        break
    sum=sum+x
    x=x*2
    n+=1
print sum
方法二:
sum = 0
x = 1
n = 1
while n <= 20:
    sum = sum + x
    x = x * 2
    n = n + 1
print sum
在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。
对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,232 < 3)。
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9]:
    for y in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
        if xprint x*10+y
**字典dict**
Python的 dict 就是专门干这件事的。用 dict 表示“名字”-“成绩”的查找表如下:
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}

你可能感兴趣的:(python学习)