Python学习笔记-DAY2

Python的语法比较简单,采用缩进方式

转义字符

Python是动态语言,变量本身类型不固定

通常用全部大写的变量名表示常量

Raw_input()input

产生随机数
Python 字符编码 ord与chr
Unicode与UTF-8之间的编码转换
格式化

List 与tuple添加认识

类的初使用

循环的使用

Dict的用法

Set的用法

 

 

Python的语法比较简单,采用缩进方式

a=100
if a>100:
   
print a
else:
   
print –a

 

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\

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

print '\\\t\\'

print r'\\\t\\'

print r'"line1\n'

Python是动态语言,变量本身类型不固定,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量

a=123

print a

a='nihao'

print a

 

通常用全部大写的变量名表示常量

import math

PI=math.pi

print PI

Raw_input() 是提出字符

Input()是提取输入字的类型(可以的整型)

1.age=raw_input("please enter your age:")| age=int(raw_input("please enter your age:"))

age=int(age)

if age >= 18:

    print 'adult'

else:

    print 'teenager'
 
2. age=input("please enter your age:")

if age >= 18:

    print 'adult'

else:

    print 'teenager'
 
产生随机数
import random

a = random.randrange(0,101)

b = random.randrange(0,101)

c = random.randrange(0,101)

H = [a, b, c]

print H
 
 
 
Python 字符编码 ord与chr
a=ord('A')

print a

b=chr(65)

print b
 
 
Unicode与UTF-8之间的编码转换
  1. Unicode表示的字符串用u'...'表示
  2. u''u'\u4e2d'是一样的,\u后面是十六进制的Unicode
  3. 字符串'xxx'虽然是ASCII编码,但也可以看成是UTF-8编码,而u'xxx'则只能是Unicode编码
  4. u'xxx'转换为UTF-8编码的'xxx'encode('utf-8')方法,反过来,把UTF-8编码表示的字符串'xxx'转换为Unicode字符串u'xxx'decode('utf-8')方法
  5. 英文字符转换后表示的UTF-8的值和Unicode值相等(但占用的存储空间不同),而中文字符转换后1Unicode字符将变为3UTF-8字符,你看到的\xe4就是其中一个字节,因为它的值是228,没有对应的字母可以显示,所以以十六进制显示字节的数值。
  6. 由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:#!/usr/bin/env python

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

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。如果你使用Notepad++进行编辑,除了要加上# -*- coding: utf-8 -*-外,中文字符串必须是Unicode字符串:

  1. "中文" '\xd6\xd0\xce\xc4' u"中文" u'\u4e2d\u6587'(因此,len(‘中文’)=4  len(u‘中文’)=2)
  2. 牢记中文要加u
name = raw_input(u"请输入你的姓名:")

 

>>> u'中'
u'\u4e2d'
>>> print u'中文'
中文
>>> print u'\u4e2d'
>>> u'ABC'.encode('utf-8')
'ABC'
>>> u'ABC'
u'ABC'
>>> 1
1
>>> u'中文'.encode('utf-8')
'\xe4\xb8\xad\xe6\x96\x87'
>>> u'z中文'.encode('utf-8')
'z\xe4\xb8\xad\xe6\x96\x87'
>>> len('ABC')
3
>>> len(u'ABC')
3
>>> len('中文')
4
>>> len(u'中文')
2
>>> 'abc'.decode('utf-8')
u'abc'
>>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
u'\u4e2d\u6587'
>>> '\xe4\xb8\xad'.decode('utf-8')
u'\u4e2d'
>>> print'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
中文
>>>
 
 
格式化
Python中,采用的格式化方式和C语言是一致的,用%实现
%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略

常见的占位符:%d 整数  %f 浮点数  %s字符串 %x 十六进制整数

>>> 'Hello,%s'%'world'

'Hello,world'

>>> 'hi,%s,you have $%d.'%('Michael',100000)

'hi,Michael,you have $100000.'

格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

>>> '%2d-%02d'%(3,1)

' 3-01'

>>> '%.2f'%3.1415926

'3.14'

>>> '%.5f'%3.1415926

'3.14159'

%s会把任何类型转换为字符串

>>> 'Age:%s.Gender:%s'%(25,False)

'Age:25.Gender:False'

Unicode字符串用法完全一样,但要保证替换的字符串也是Uicode字符串

>>> u'hi,%s'%u'Michael'

u'hi,Michael'

有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%

>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'
 
#-*- coding: utf-8 -*-

print u'你好,你是:'

name=raw_input(u'请输入你的名字'.encode('utf-8')).decode('utf-8')

print u'%s是一个好名字,'% name

 

List 与tuple添加认识

List 定义时是用[],tuple 定义时是用()(tuple不可以被修改,并没有list那样的插入删除功能)

可以往list中追加元素到末尾:list.append()

可以把元素插入到指定位置:list.insert(1,’Jack’)

删除list末尾元素:list.pop()

删除指定位置的元素:pop(i)

把某个元素直接替换成别的元素:list[1]=…

List 中的元素类型可以不同

List 中可以有其他list就相当与多重数组

 

类的初使用

class A(object):
   
def __init__(self, abc):
       
self.abc=abc
a=A([
1,2])
b=A([
1,2])
a.abc.append(
3)
print a.abc
print b.abc

(这里的a与b在我理解是指针而不是对象)

循环的使用

for...in循环

sum = 0

for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:

    sum = sum + x

print sum

sum = 0

for x in range(101)(0-100)

    sum = sum + x

print sum

while循环:

sum = 0

n = 100

while n > 0:

    sum = sum + n

    n = n - 1

print sum

 

 

循环过程中严禁修改被循环集合的内容,否则会有各种奇怪的bug

a=['1','2','3','6','7']
for i in a:
   
if int(i)/3==1.0*int(i)/3:
        a.remove(i)

print a

 3被删除的时候,6的索引变成原先3的索引了,跳过判断

a=['1','2','3','6','7']
b=[]

for i in a:
   
if int(i)%3!=0:
        b.append(i)

print b

Dict的用法

 

d={'M':95,'B':65,'A':54}
print d['M']
d[
'M']=100
print d['M']
print 'M'in d
print d.get('M',-1)
print d.get('N',-1)
d.pop(
'B')
print d
d['C']=101
print d

Set的用法

  1. 创建一个set,需要提供一个list作为输入集合:
  2. 传入的参数[1, 2, 3]是一个list,而显示的set([1, 2, 3])只是告诉你这个set内部有1233个元素,显示的[]不表示这是一个list
  3. 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
  4. 通过remove(key)方法可以删除元素
  5. 两个set可以做数学意义上的交集、并集等操作

s1=set([1,2,3])
print s1
s1.add(4)
print s1
s1.remove(4)
print s1
s2=set([3,4,5])
print s1&s2
print s1|s2

猜你喜欢

转载自blog.csdn.net/yige__cxy/article/details/81157424