输入输出,数据类型,python编码问题

来源:互联网 发布:md204lv4编程软件下载 编辑:程序博客网 时间:2024/05/16 10:29
# print'helloworld', 'the lazy dog', 'niliu'
# print 300
# print '100+200=',100+200
# 这里逗号是一个空格
# name=raw_input()
# 这里每个语句之间不用分号隔开
# 这是输入语句,输入的是字符串
#括号里面可以显示字符串,用于提示用户
# print name
#  ame=raw_input()
# print 'helo',amel
# name=raw_input()
# print name
name=raw_input('Please enter your name')
print'hello',name
以#号开头的是注释,可以是任何内容
其他每行都是一个语句,当语句以:结尾时,缩进的语句视为语句块,按约定俗成的使用四个空格的缩进(IndentationError unexpected indent)(缩进的方式要一致),缩进的坏处是复制粘贴功能失效了,当重构代码时,粘贴过去的代码必须检查缩进是否正确,另外,Python是大小写敏感的,大小写写错,程序会报错

十六进制用0x前缀和0-9,a-f表示
浮点型:1.6e-5这里是科学计数法,e表示10,这里就是1.6*10的负5次方
字符串用单引号阔起来,如果有字符串中有单引号,外层就必须使用双引号,如“hello 'world'”
如果既有单引号又有双引号,就必须使用转意字符\了
'i\'m\"hello\"'
\n换行
\t表示制表符
\本身也表示转义
\\表示\
print '''lll
dff
dfs'''表示多个换行



这里有问题
age = raw_input()
if age >= 18:
    print 'adult'
else:
    print 'teenager'



变量必须是大小写英文,数字和_的组合,且不能是数字开头


a=123
print a
a='abc'
print a
这里的变量可以反复赋值,而且变量类型不固定,这种语言称为动态语言,反之称为静态语言
静态语言在定义变量时必须定义变量类型,如果变量类型不匹配,就会报错,例如JAVA是静态语言
Python中的常量是用大写字母表示,实际上还是变量,python中没有任何机制保证定义的常量不被改变
print 10/3
print 10.0/3
print 10%3
这里的整数相除结果永远是整数,要做精确的除法,把其中一个整数转化为浮点数,Python还提供了求余数的方法
ASCII码一个字节,八个比特,即八位二进制,所以一个字节能表达的最大整数是255,要表达跟多的数就要更多的字节
若要编码中文,一个字节显然不够,因此出现了Unicode(把所有语言都统一到一套编码里面去了),通常是两个字节。ASCII码前面加一个0就得到他的Unicode码,另外,如果文本基本上都是英文的话用Unicode编码,比用ASCII编码多用一倍的存储空间非常不划算,因此又出现了UTF-8编码,把Unicode编码转化为“可变长编码”UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节。
在计算机内存中统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转化为UTF-8编码,用记事本编辑时先将文件中的UTF-8编码转化为Unicode字符到内存中,编辑完成后,保存的时候再把Unicode编码转化为UTF-8
浏览网页时服务器会把动态生成的Unicode内容转化为UTF-8在传输到浏览器。许多网页源码上会有类似<meta charset=''UTF-8''>的信息,表示该网页用了UTF-8编码
# print ord('a')
# print chr(65)
//一个是把字符串转化为ASCII码
一个是把ASCII码转化为字符串
Python再后来添加了对Unicode的支持,即u’‘
print u'中文'//这里输出的是中文二字
u’中‘//这里输出的是Unicode编码?
u'中'和u'\u4e2d'是一样的,\u表示转义字符?后面是十六进制的Unicode码
python中字符串类型是未编码的,编码函数为encode()
解码函数为decode()


//此处仅限于控制台,
>>> u'红'//把红转化为对应的Uicode码
u'\u7ea2'//红对应的Unicode码
>>> print u'中文'
中文
>>> print u'中'
>>> print u''

>>>
>>>
>>> u'ABC'.encode('utf-8')//unicode码转化为UTF-8
'ABC'
>>> u'中文'.encode('utf-8')
'\xe4\xb8\xad\xe6\x96\x87'
>>> print a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> print 'a'
a
>>> len(u'ABC')
3
>>> len(u'中文')
2
>>> 'abc',decode('utf-8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'decode' is not defined
>>> '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')
中文
>>>


# -*- coding: UTF-8 -*-
print "你好,世界";
如果要敲中文字符必须加上这一句(暂时不知道为什么)

totel=1+\
    3+\
    4+\
    5
print totel
一般情况下Pytion一般以新行作为语句的结束符,但是可以用反斜杠把一行当做多行显示
day={'Monday','Tuesday','Wedesday',
     'Thursday','Friday'}
语句中包含了{}[]()就不需要反斜杠

字符串
s='ilovepython'
print s[1:5]//输出love
print s//输出ilovepython
print s[0]//输出i
print s[6:]//输出python
print s*2//输出ilovepythonilovepython
print s+'Test'//输出ilovepythonTest
Python列表
list=['wei','地方',123,'123',12.3]
print list
print list[1:]
print list[1]
print list*2
tinylist=['123',123]
print list+tinylist
列表是pytion使用最频繁的数据类型,支持字符,数组,字符串,甚至可以包含列表

元祖,与列表类似,不同的是这里初始化用括号
而且元祖不能二次赋值,相当于只读列表
tuple=('wei',786,'john',230.2)
tinytuple=('df',12,'12',12.1)
print tuple
print tuple[0]
print tuple[1:3]
print tuple[2:]
print tuple+tinytuple





函数描述int(x [,base])将x转换为一个整数long(x [,base] )将x转换为一个长整数float(x)将x转换到一个浮点数complex(real [,imag])创建一个复数str(x)将对象 x 转换为字符串repr(x)将对象 x 转换为表达式字符串eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s)将序列 s 转换为一个元组list(s)将序列 s 转换为一个列表set(s)转换为可变集合dict(d)创建一个字典。d 必须是一个序列 (key,value)元组。frozenset(s)转换为不可变集合chr(x)将一个整数转换为一个字符unichr(x)将一个整数转换为Unicode字符ord(x)将一个字符转换为它的整数值hex(x)将一个整数转换为一个十六进制字符串oct(x)将一个整数转换为一个八进制字符串

还有就是
python数字,数字数据类型,用于存储数字,是不可改变的数据类型,改变数字数据类型就意味着分配一个新的对象
可以用del删除一些对象的引用
del var
del var_a,var_b

随机数函数
函数描述choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。randrange ([start,] stop [,step])从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1random()随机生成下一个实数,它在[0,1)范围内。seed([x])改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。shuffle(lst)将序列的所有元素随机排序uniform(x, y)随机生成下一个实数,它在[x,y]范围内。
\o12表示八进制数12?
del list1[2];//删除list元素
cmp(list1,list2)
比较两个列表的元素
len(list)
列表表示的个数
max(max)
返回列表最大值
list(seq)
将元祖转化为列表
list.append(obj)
在列表末尾添加新对象
list.count(obj)
统计某个元素在列表中出项的次数
list.extend(sed)
在列表尾部一次性追加另一个序列的多个值
list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
tuple(seq)
将列表转化为元组
不可变类型
变量a=5后再赋值a=10,这里实质上是新生成了一个int性的对象,再让a指向它,而原来的5被丢弃了
可变类型
变量赋值la=[1,2,3,4]后再赋值la[2]=5则是将List第三个元素进行更改
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
保留字in是一个二元关系操作,判断左侧内容是否在又侧集合中

原创粉丝点击