第二阶段---python基础

文件操作

流程:

1:打开文件:       
        open("")
        f = open(‘test‘)
        data = f.read(5) #读指定个数的字符;
        data = f.read(5) #从光标位置 读指定个数字符;
        data = f.readline() 读取一行,包括改行换行符;
        data = f.readlines() # 列表结果;

with open("ts1") as f: 第二行有缩进;控制块,推出控制块,省去f.close()    #  f = open("ts1")      相等;

2、操作文件:    读写; 默认r模式;

f = open("test2",mode=‘a‘,encoding=‘utf8‘)     文件追加写;
                f = open("test2",mode=‘w‘,encoding=‘utf8‘)   文件覆盖写;
                f = open("test2",mode=‘x‘,encoding=‘utf8‘)   文件提醒;有此文件;并且报错;

可读,可写模式: r+  w+ a+

r+ 模式,追加写;  默认光标在开始位置;
                w+ 模式,覆盖写,想读取内容;seek调整;
                a+ 模式  光标无论在什么位置,追加位子都在最后;  读内容用seek调整;

*********************************************************************************************

rb      wb        ab

在wb模式下:字符串转化字节串; .encode("utf8")      过程:

f = open("t3",mode="wb")
f.write("where is xialv 李节".encode("utf8"))
*********************************************************************************************
f=open("test","rb")  不需要解码过程;
b‘test\nwhere is xialvwhere is xialvwhere is xialv‘
*********************************************************************************************

r        w        a

在w模式下:默认转化
f = open("t3",mode="w",encoding="utf8")
f.write("where is xialv 李节")

*********************************************************************************************

调整光标位置:f.seek(0)   see() 光标 按照字节走; 不同于read()方法;

打印当前光标位置: tell()

3、关闭文件:

4 、时间操作;
              import time
              time.sleep(100)
              f.flush()   立即存储;
                
              import sys
              sys.stdout.write("hello")  跟f一样,跟文件一样;屏幕输出;

\r\n     \r光标移动到开头;\n光标移动到下一行;

例子4:   百分比打印:

import sys
                for i in range(101):
                    s="\r%d%% %s"%(i,"#"*i)
                    sys.stdout.write(s)
                    sys.stdout.flush()

import time
                    time.sleep(0.2)

例子1:

count=0
f = open("test")
for line in f.readlines():
    if count==3:
        line="".join([line.strip(),"岳飞"])            #‘‘.join(a,b)
    print(line.strip())
    count+=1
f.close()

例子2:
import sys
for i in range(100):
    sys.stdout.write("#")
    sys.stdout.flush()
    import time
    time.sleep(0.5)

例子3:
while 1:
    l=[]
    m = input(‘pls input:‘).strip()
    flag = False
    with open("less") as f:
        for i in f:
            if i.startswith("backend") and m in i:     #startswith()
                flag = True
                continue
            if i.startswith("backend") and flag:
                break
            if flag:
                l.append(i.strip())
        for i in l:
            print(i)

**********************************************************************************************************************************

编码:

可变类型数据:列表,字典;
不可变数据类型:整形;元组,字符串;

算术,赋值,比较,逻辑运算符; 关系运算in ,not in

*****************************************************************

pycharm右下角保存编码方式 ;那么pychon解释器就需要按照这种方式去解码;
utf8当然不需要解码方式;pychon3默认解码方式及编码方式为utf8,
pychon2需要申明解码方式:encoding=utf8 pychon2编码方式为ascii

******************************************************************
抛开执行执行程序,请问大家,文本编辑器大家都是用过吧,如果不懂是什么,那么word总用过吧,ok,当我们在word上编辑文字的时候,不管是中文还是英文,计算机都是不认识的,那么在保存之前数据是通过什么形式存在内存的呢?yes,就是unicode数据,为什么要存unicode数据,这是因为它的名字最屌:万国码!解释起来就是无论英文,中文,日文,拉丁文,世界上的任何字符它都有唯一编码对应,所以兼容性是最好的。

好,那当我们保存了存到磁盘上的数据又是什么呢?

答案是通过某种编码方式编码的bytes字节串。比如utf8---一种可变长编码,很好的节省了空间;当然还有历史产物的gbk编码等等。于是,在我们的文本编辑器软件都有默认的保存文件的编码方式,比如utf8,比如gbk。当我们点击保存的时候,这些编辑软件已经"默默地"帮我们做了编码工作。

那当我们再打开这个文件时,软件又默默地给我们做了解码的工作,将数据再解码成unicode,然后就可以呈现明文给用户了!所以,unicode是离用户更近的数据,bytes是离计算机更近的数据。

*******************************************************************
python3下:默认编码是;
字符串类型 :
 str(类型) : unicode(数据)
 bytes(类型): bytes(数据)

s="中文"  ---数据类型:str ,
s2=b"hello"

print(type(s))                               str
print(type(s.encode("GBK")))                 bytes

print(type(s2))                                 bytes
 print(type(s2.decode("utf8")))                 str

bytes传输用的;unicode文本显示用的;  字节跟字符方式处理一样;

________________________________________________________________
*******************************************************************

--------------------------------------------------------------
encoding=utf8

s="中文"
s2=u"李杰"
print type(s.decode("utf8"))     字符串s的类型:unicode
print type(s2.encode("utf8"))     字符串S2的类型:string

--------------------------------------------------------------------------------
ASCII 127 7个比特位  美国;
扩展 ASCII 256个数字:8个位 拉丁;
中文扩展ascii码 gb2312 几千个状态,中国
中文扩展ASCII码 gbk   3.5万个状态; 中国;

unicode:2个字节; 16位 六万多个状态;---全世界状态;
utf-8: 1-3个字节;

软件内容存到内存的是unicode.
存到硬盘:utf-8 (unicode >> utf-8)
unicode(明文对应数字)
utf-8(二进制,对应二进制;)
________________________________________________________________---
*******************************************************************
python2下:
 字符串
1、str(类型):        bytes (字节数据)  
2、unicode(类型):     unicode编码后的二进制数据;

s="袁浩"
s2=u"李杰"
print repr(s)         ‘\xe8\x8b\x91\xe6\x98\x8a‘    utf-8编码;字节数据;
print repr(s2)           u‘\u674e\u6770‘              unicode编码;

unicode
    |            |
    uftf        gbk
    |            |
    字节数据        字节数据

________________________________________________________________
*******************************************************************

jk3000 >>> decode(解码)--unicode >>> encode(编码)--->GBK

big5

utf-8

# -*- coding:utf-8 -*-
name = "中文"
print name
# python2默认编码是ASCii,
print [name.decode("utf-8")]
[u‘\u4e2d\u6587‘]      unicode

______________________________________________________________________________________
______________________________________________________________________________________

字符串:

昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
count=0
f = open("test")
for line in f.readlines():
    if count==3:
        line="".join([line.strip(),"岳飞"])
    print(line.strip())
    count+=1
f.close()

name2 =" my name is {0}, i am {1} years old"
print(name2.index("is"))  >>>9      #找字母下标;
print(‘10.1‘,isdecimal())            #是否是正整数;
print(‘aA‘.isalpha())                #是否是字母;
print(‘a‘.isidentifier())            #关键字;能不能定义为变量;
 print(‘A‘.islower())                #是否是小写;
 print(‘A‘.isupper())                #是否是大写;
print(‘123.3‘.isnumeric())            #是否是数字;不是小数;
print(name2.lstrip())                #脱左空格;或者(‘‘) ‘‘内的内容;‘my‘ 换行符号;
print(name2.swapcase())                #大小写互换;
print(name2.translate(self,table))

print(name2.replace(‘name‘,‘NAME‘)) #替换;
>>> name=name.replace(‘my‘,‘My‘)
>>> name
‘ My name is {0}, i am {1} years old‘

print(name2.join())
print(‘||||‘.join([‘a‘,‘b‘,‘c‘]))  #把列表拼成字符层,中间用‘|||‘内容隔开;
>>>a|||b|||c

print(name2.ljust(50,‘-‘))            #左对齐,不够的用‘’内的-补齐;
my name is {name},i am {age} years old~~~~~~~~~~~~
print(name2.rjust(50,‘-‘))            #右对齐;
print(name2.lower())                #大写变小写;

name="alex"

print(name.capitalize())#首字母大写
print(name.casefold())#大写变小写;  
print(name.center(50,‘-‘))
print(name.count(‘e‘))   
print(name.count(‘e‘),3,7)       从3开始,7位结尾内统计e的个数
print(name.endswith("LI"))         以“”结尾,判断;

name="Alex\teee li"                
print(name.expandtabs(3))          >>>Alex   eee Li     设置TAB健的长度;

print(name.find("e")) print(name.find("e",3)) >>>找到"e"的索引位置; 找不到返回-1;
print(name2.rfind(‘‘))

********************************************************************

传如下标对应的实参;
格式化 1 :    name="my name is {0},i am {1} years old"
            print(name.format("alex",22))

传入 变量对应的字典 ,变量对应的关键字参数;
格式化 2 :     name2="my name is {name},i am {age} years old"
            print(name2.format(name="alex",age=22)) 或者:
            print(name2.format_map({‘name‘:‘alex‘,‘age‘:22}))

______________________________________________________________________________________
a=(‘a‘,‘b‘)
b=list(a)     #元组变成列表list()
a=tuple(b)      #列表变成元组;
______________________________________________________________________________________

Python -- 两个列表的差集、并集和交集

if __name__ == ‘__main__‘:  
        a_list = [{‘a‘ : 1}, {‘b‘ : 2}, {‘c‘ : 3}, {‘d‘ : 4}, {‘e‘ : 5}]  
        b_list = [{‘a‘ : 1}, {‘b‘ : 2}]  
        ret_list = [item for item in a_list if item not in b_list] + [item for item in b_list if item not in a_list]  
        print(ret_list)  
   **********************************************
    if __name__ == ‘__main__‘:  
        a_list = [1, 2, 3, 4, 5]  
        b_list = [1, 4, 5]  
        ret_list = list(set(a_list)^set(b_list))     #列表差集
        print(ret_list)

ret_list = list(set(a_list).union(set(b_list)))       #列表并集

ret_list = list((set(a_list).union(set(b_list)))^(set(a_list)^set(b_list)))  #列表交集

______________________________________________________________________________________

集合操作

#集合 set 2个功能: 1、关系测试;2、去重;

set操作的是一个序列;
set是可变数据类型;
set集合内的元素一定三不可变数据类型;

s= set([1,3,"hello"])                    #列表设置集合;
s2 = {1,2,3}
print(s)
print(type(s2))
>>> <class ‘set‘>
    {1,2,3}

linux={‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘a‘,‘alex‘}
python={‘sb‘,‘alex‘,‘mack‘,‘rachel‘,‘a1‘}

print(linux.intersection(python))      交集
print(linux & python)

print(linux.difference(python))         差集
print(linux - python)
print(python - linux)

print(linux.union(python))              求并集,linux内容不改变;天然去重;
print(linux | python)

print(linux.symmetric_difference(python)) #对称差集,互相不在的打印;
print(linux ^ python)

linux.update(python)                      合并集合但是会改动linux内容
linux.add("alex")
linux.copy()
linux.difference_update(python)         差集取出存入linux (不常用)
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

linux.discard()                         删除; 等同 remove pop() 随机删除;
linux.add("a")                            增加;
linux.issubset()                         子集;判断linux是不是谁的子集;

_________________________

___________________________________________________________________

三元表达式:

a=3
b=5
c = a if a < b else b

oct(9) oct八进制函数;

==========================================================================================

info={}
info = info.fromkeys([1,2,3],‘key‘)
print(info)
----------------------------------------------------------------------------------
SQL中CONVERT函数格式:

CONVERT(data_type,expression[,style])
参数说明:

expression

是任何有效的 Microsoft? SQL Server? 表达式。。

data_type

目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。

________________________________________________________________________________

列表,浅COPY

name = [1,2,3,4,[‘alex‘,‘rain‘]]                      #值存在多块内存空间;
n2 = name.copy()
>>> print (n2)
[1, 2, 3, 4, [‘alex‘, ‘rain‘]]
>>> name[4][0]="ALEX LI"
>>> print(name)
[1, 6, 3, 4, [‘ALEX LI‘, ‘rain‘]]
>>> print(n2)
[1, 2, 3, 4, [‘ALEX LI‘, ‘rain‘]]

-------------------------------------------------------------------------------

bool运算:
>>>bool([])
>>>False
    一下情况都为False
    []
    {}
    ()
    ‘‘
    0

>>>bool([1])
>>>True

type(1) is int
>>>True
type(‘1‘) is int
>>>type([])
>>><class ‘list‘>

%s string
%d digit
%f float

格式化输出:

name=input("name")
age=input("age")
job=input("job")
salary=input("salary")

info=‘‘‘
----------------info of %s--------------------
NAME:   %s
AGE:    %s
JOB:    %s
SALARY: %s
-------------------end------------------------
‘‘‘%(name,name,age,job,salary)

print(info)

####################################################################################################################################

字典:

stu = {1: {‘name‘: ‘n11‘, ‘add‘: ‘ch1‘}, 2: {‘name‘: ‘n2‘, ‘add‘: ‘ch2‘}, 3: {‘name‘: ‘n3‘, ‘add‘: ‘ch3‘}, 4: [‘rain‘, 28]}
>>> stu[4].append(28)                         字典嵌套数组,可以append()
stu[5] = {‘name‘:‘zj‘,‘add‘:‘ch5‘}            增加key=5 的值 ;
stu[5] = {‘name‘:‘zj‘,‘add‘:‘ch5‘,‘age‘:23}   #改变key=5 的值;重新赋值;
stu.pop(key)>>> stu.pop(5)                     #删除指定的key的值;
del stu[4]                                     #删除指定的key;
print(key in 字典)    >>> print(5 in stu)       有这个key就返回True

字段循环:for i ,k in stu.items():print(i,k)   #效率很低
  for i in stu:print(i,stu[i])                 #首选;打印key+values
print(stu.values())                             打印values.

stu.update()   names ={113:[‘rain‘],118:[‘rains‘]}   #2个字典合并;
stu.update(names)

字典函数  处理1:get()----查操作

d = {1:‘b‘,2:‘a‘}
print(d[2])
v=d.get(‘a‘,None)          #get("键值",值2)   ,  如果有键值存在就get该键内的value ,如果没有,None给v赋值;  
print(v)

if 的出错处理:(None赋值情况下;)
if not v:
    pass

#遍历:  for i in seq:         #seq 可以是字典,列表,元组,字典;
for i in range(1,101):
for i,v in enumerate(d):print(i,v)
for i,v in enumerate(d,1):print(i,v)  从1开始;

# 增加; 上面有,

**********************************************************************************************************************************************

字符串:

Substring(name_0,0,CHARINDEX(‘寄库‘,name_0))

substring(字符串,开始位置,长度)

CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:
       CHARINDEX ( expression1 , expression2 [ , start_location ] )
       Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。
       CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么函数整数“0”。让我们看看下面的函数命令执行的结果:
      CHARINDEX(’SQL’, ’Microsoft SQL Server’)
      这个函数命令将返回在“Microsoft SQL Server”中“SQL”的起始位置,在这个例子中,CHARINDEX函数将返回“S”在“Microsoft SQL Server”中的位置11。
*********************************************************************************************************************************************************
import getpass

username = input("username:")
password = getpass.getpass("password:")
print (username,password)

name = "alex" 引号,代表字符串;
print(type(name)) <class ‘str‘>
input 接收的是字符串;
22
str(22) ‘22‘
依赖关系未满足安装使用办法:
 sudo apt --fix-broken install

字符编码
数据类型;
for  ..else
ascII 码(512 256 128 64 32 16 8 4 2 1)----unicode 万国码;bit=1Byte=一个字节;
1024KB=1MB=100万字符
每个字符占8位;
unicode 4个字节;
utf-8 = 8bits 可变长编码
英文一个字节;中文3个字节;
欧洲2个字节;
‘‘‘
多行内容
‘‘‘
‘‘‘内容不能执行,但是可以被打印; ‘‘‘内容‘‘‘  变成字符串了;

但引号‘‘和"" 没有任何区别;适用于单行;
name = "\t   Alex Li;Rain wang;Jack john     \t"
\t4个空格(tab健)
\n 换行
print(name.strip())

name.strip() #把字符串前后去掉空格;(以及\n)
name.split() #把字符串按空格分割成列表;
name.split(";")#把字符串按;分割成列表;
len(name)#计算字符串长度;

a=‘50;201;202;2021;203;204;205;2051;206;209;2091;211;281;282;283;284;288;285;286;511;513;289;515;517;290;2061;2062;2063;2064;2065;207;212;214‘
j=0
b=a.split(";")
print(a)
print(type(b))
for i in b:
    j +=1
print(j)
>>>33

******************************************************************

列表:

names=[‘alex‘]
names2=["Jack","rain"]
names.clear()
names.extend(names2) #扩展
names.reverse() #反转;
names.sort() #names里面的元素类型必须相同; names.sort(reverse=True) 反转调;
>>> print(sorted([1,22,12]))              #sorted()
[1, 12, 22]
>>>

[1,2,333,4].reverse()

ord("a") asc码值
*********************************************************************************

b_list.index("wuxiao")                  #查找元素的索引(下标);

b_list.count("wuxiao")                  #统计wuxiao有几个;

b_list.append("wuxiao")                 #增加一个(到最后位置);
                                        增加多个方法:.extend()
b_list.extend([7,8])

b_list[b_list.index(‘liuxiao‘)]=‘徐雨‘   #改,根据index更改元素

b_list.insert(4,‘chentao‘)              #在特定位置插入;

b_list.pop(3)                           #删除指定index值;返回被删除的值;
  eg. >>> b_list.index(‘wuxiao‘)
      3
      >>> b_list.pop(3)
      ‘wuxiao‘
del b_list[1]                               #删除下标对应的元素;
b_list.remove(‘zhouxiao‘)                #默认删除‘zhouxiao‘ 列表里面第一个出现的元素;
b_list = []                               #推荐赋空值;

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
切片法则:顾头不顾尾 a = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]
a[0] = ‘a‘
a[1:] = [‘b‘,‘c‘,‘d‘,‘e‘]
a[-1] = ‘e‘
a[-3:] = [‘c‘,‘d‘,‘e‘]
a[-3] = ‘c‘
a[:-1] = [‘a‘,‘b‘,‘c‘,‘d‘]
a[0::2] = [‘a‘,‘c‘,‘e‘] #2跳过一个取值;步长=2
a[0::3] = [‘a‘,‘d‘] #跳过2个取值;步长=3
#####################################################################
b="zhouxiao,zhangxiao,feixiao,wuxiao,liuxiao,fenxiao,waixiao"
b_list=b.split(",")
>>>b_list
[‘zhouxiao‘, ‘zhangxiao‘, ‘feixiao‘, ‘wuxiao‘, ‘liuxiao‘, ‘fenxiao‘, ‘waixiao‘
]
>>>print(len(b_list))
7
>>>print(b_list.index("wuxiao"))
3
>>>b_list[3]
‘wuxiao‘
#####################################################################

循环:

for i in range(10):
  if i <=5:
    print(i)
  else:
    #break              有break跳出本层循环;
    print("------")
***********************************

for i in range(10):
      if i > 5:
        print(i)
      else:
        continue        跳出本次循环;print没有执行;
        print("------")
############################################
for i in range(10):
  print(i)
  if i==5:
  break
else:                      for 循环 带else 结束;
  print("done")           #当for 循环正常结束else被执行;否则else不执行;
###################################################
count = 0
while count <100:
  print("...",count)
  count +=1
  if count ==50:
    break
else:
  print("done..")            #while 也可以有else语句,正常执行完可执行else
  ###################################################
  list2=(3,)                 必须有逗号;元组类型;
  if salary.isdigit():        如果输入的是0-9字符串类型的数字;(它是数字,只不过是字符串形式)那么认为是真!然后转int类型;
    salary = int(salary)
    while True:
      for index,item in enumerate(product_list):
      print(index,item)

***************************************************************
a=[[‘a‘,500],[‘b‘,50],[‘c‘,600]]
>>> for i in enumerate(a):print(i)

...
(0, [‘a‘, 500])
(1, [‘b‘, 50])
(2, [‘c‘, 600])
######################################################################
格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。

比如下面的例子:

print("I‘m %s. I‘m %d year old" % (‘Vamei‘, 99))
***********************************************************************

一次性跳出多层循环; (方法一:)

break_flag = False

for i in range(5):
    print("爷爷层:",i)
    for i in range(5):
        if i == 3:
            break_flag = True
            break
        for i in range(10):
            print("孙子层",i)
            if i == 3:
                break_flag = True
                break
        if break_flag:
            break
    if break_flag:
        print("all die")
        break
***************************************************************************
(方法二:)

break_flag = False
count = 0
while break_flag == False:
    print("grandfather level")
    while break_flag == False:
        print("father level")
        while break_flag == False:
            print("son level")
            count +=1
            if count >3:
                break_flag = True

print("go ~~~~~~~~~~~~~~~~~")

时间: 2024-10-12 22:04:37

第二阶段---python基础的相关文章

第二阶段---python基础--模拟登陆

说明: 1.用户原文件存储在文件中_userinfo 2.判断是否存在登陆错误的用户_被锁定的用户_wrong_name2,没有创建,并写入用户文件头username,带逗号,锁定用户以'逗号'隔开; 3.判断输入用户是否存在锁定账户中(取出用户名,存入列表,) 4.逻辑控制,用户名,或秘密超过3次记录该用户的用户名到文件; import osif os.path.exists('wrong_name2'):    file_wrong=open('wrong_name2')    f=file

麦子学院 Python基础+Pythonweb+Python扩展+Python选修四大专题 视频j教

课程简介:目录:第一阶段:python基础准备第二阶段:Pythonweb开发第三阶段:Python扩展开发第四阶段:Python开发选修 下载地址:百度网盘 原文地址:http://blog.51cto.com/13888870/2150467

linux+jmeter+python基础+抓包拦截

LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 官方网站下载jdk(linux相应版本) 2.在usr目录下创建java路径文件夹 [root bin]cd /usr mkdir java 3.将jdk-8u60-linux-x64.tar.gz放到刚才创建的文件夹下

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

Python基础入门 (一)

一.关于版本的选择 Should i use Python 2 or Python 3 for my development activity?转载自Python官网 Short version: Python 2.x is legacy, Python 3.x is the present and future of the language Python 3.0 was released in 2008. The final 2.x version 2.7 release came out

Python 基础 - Day 4 Learning Note - Generator 生成器

列表生成器/列表解析 list comprehension 简单灵活地创建列表,通常和lambda(), map(), filter() 一起使用 通过列表生成式, 直接创建列表.但是,收到内容限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问几个元素,那其他的就白占空间.列表生成器能够一边循环一边计算,大大节省大量的空间.是生成器的一种. 只有调用,才能生成. 不支持切片操作,只能通过__next()___一个个取数字. 基本语法

python基础教程(第二版)

开始学习python,根据Python基础教程,把里面相关的基础章节写成对应的.py文件 下面是github上的链接 python基础第1章基础 python基础第2章序列和元组 python基础第3章使用字符串 python基础第4章字典 python基础第5章循环 python基础第6章函数和魔法参数 python基础第7章类 python基础第8章异常 python基础第9章魔法方法.属性和迭代器 python基础第11章文件 python基础第12章GUI(wxPython) pytho

python基础周作业

python基础周作业 1.执行python脚本的两种方法 脚本前面直接指定解释器 在脚本开始前声明解释器 2.简述位,字节的关系 每一个字节占用八个比特位 3, 简述ascii.unicode.utf- ‐8.gbk的关系 utf--‐8 <-- unicode <-- gbk <-- ascii 按此方向兼容 4..请写出"李杰"分别用utf- ‐8和gbk编码所占的位数 "李杰" 占用utf -8 占6字节 , gbk 占用4字节 5.pyt

Python基础(二)

Python基础(二) Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典.set集合) for 循环 enumrate range和xrange 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483