python学习随笔(一)

  学习python之前认识计算机原理更加有效了解编程,下面学习一下计算机体系结构

冯诺依曼体系架构
    CPU    
        运算器#完成各种运算,数据传输等
        控制器#控制程序的执行
        #CPU中还有寄存器和多级缓存Cache
    
    存储器    #memory内存

    IO设备    
        输入设备
    输出设


程序program:

算法+数据结构=程序   
数据结构(决定着算法)
算法:数据处理的方式(解决问题的办法)

Python解释器:
    CPython,IPython,PyPy,Jython,IronPython

Python基础语法
    注释    #标注的文本
    数字
        整数,不分区long和int
            进制0xa(十六进制),0o10(八进制),0b10(二进制)
            bool,2个值Ture,False
        浮点数
            1.2,3.1415,-0.12,1.46e9等价于1.46*10^9
        复数,1+2j
    字符串
        使用' " 单双引号引用的字符的序列
        '''和"""单双三引号,可以跨行,可以在其中自有的使用单双引号
        在字符串前面加上r或者R前缀,表示该字符串不做特殊的处理
基础的语法
    转义序列
        \\ , \t ,\r ,\n \' , \"
        前缀r,把里面的所有字符当普通字符对待
    缩进
        未使用C等语言的花括号,而是采用缩进表示层次关系
        约定4个空格缩进
    续行
        在尾行使用 \
        如果使用各种括号,认为括号内是一个整体,内部跨行不用 \

基础语法
    标识符    
    1. 一个名字,用来指代一个值
    2. 只能是字母、下划线和数字
    3. 只能以字母或下划线开头(最好只用小写大写和下划线以后有别的用处)
    4. 不能是python的关键字,例如def、class就不能作为标识符
    5. Python是大小写敏感的

常量     

     #python中无法定义常量
        # 一旦赋值就不能改变值的标识符
     字面常量
           一个单独的量,例如 12、"abc" 、'2341356514.03e-9'
     变量
           赋值后,可以改变值的标识符

Python的语言类型:动态编译型语言,强类型语言
静态语言和动态语言对比
     静态编译语言
           实现声明变量类型,类型不能再改变
           编译时检查
     动态编译语言
           不用事先声明类型,随时可以赋值为其他类型
           编程时不知道是什么类型,很难推断
强类型语言和弱类型语言对比
     强类型语言
           不同类型之间操作,必须先强制类型转换为同一类型。print('a'+1)
     弱类型语言
           不同类型间可以操作,自动隐式转换,JavaScript中console.log(1+'a')
运算符Operator
    算数运算符
           + - * / % **
           自然除/结果是浮点数,整除//。(注:2.x中/和//都是整除)
     位运算符
           &    #位与
           |    #位或
           ~    #取反
           ^     #异或
          <<    #向左移位
           >>    #向右移位
           常用方式:乘除2的倍数,32 // 8相当于 32 >> 3(8是2^3可以写成右移三位)
          12,0xc,0o14,0b1100
       

原码,反码,补码,负数表示法
      计算机看到是补码转换成原码给我们看
原码
   5 => 0b101,1 => 0b1 ,-1 => -0b1, bin(-1)#python中的表示方法
 反码
   正数的反码与原码相同;负数的反码符号位不变其余按位取反
 补码
   正数的补码与原码相同;负数的补码符号位不变其余按位取反后+1
补码的补码是原码
例: -1的原码是1000 0001 反码是1111 1110 补码是1111 1111(反码加1)
5-1=5+(-1) 直觉上是0b101-0b1,其实是0b101+0b11111111,溢出位舍弃
~12等于多少,为什么 -13    12原码0000 1100 补码是1111 0011 (最高位是1是负数)取反1000 1100

运算符
      比较运算符
           ==(相等) !=(不等) > < >= <=
           返回一个bool值
           1 < '1' 1 == '1'
         链式比较操作符
               4>3>2 4>mynumber >=1
      逻辑运算符
              与或非 and or not
              短路运算符    #能短路就不用往下计算了尽量使用短路法
                and 如果第一个表达式为False,后面就没有必要计算了,这个逻辑表达式一定是False
                or 如果第一个表达式True,后面没有必要计算了,这个逻辑表达式一定是True

     赋值运算符
           a = min(3, 5)
           += -= *= /= %= 等
           x = y = z = 10
     成员运算符
           in、not in
     身份运算符
           is 、is not
运算符优先级
    算数运算符 > 位运算符> 身份运算符 > 成员运算符 > 逻辑运算符
    记不住,用括号
    长表达式,多用括号,易懂、易读

表达式Expression
    由数字、符号、括号、变量等的组合
        算数表达式
         逻辑表达式
        赋值表达式
 Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义

内存管理:
        当对象引用变数为0,它就可以被垃圾回收GC
内存整理:
        常用的在做内侧,不常用的在边上
程序控制:
        顺序,分支,循环
单分支结构:
    if语句
    if condition(bool函数)
        代码块
    condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)
    if 1<2:
        print('1 less than 2')
    代码块
         类似于if语句的冒号后面的就是一个语句块
         在if、for、def、class等关键字后使用代码块

#False等价布尔值(仅限python)
 False等价布尔值,相当于bool(value)
 空集合
 空字符串
 空字典
 空列表
 空元祖
 None对象
 0

多分支结构:
if,elif,else
    只要有一个分支进入其他分支不再进入
    else可以没有,只要有else就可以匹配到

if...elif...else语句
if condition1:
代码块1
elif condition2:
代码块2
elif condition3:
代码块3
......
else:
代码块

例:
a = 5
if a<0:
    print('negative')
elif a==0:
    print('zero')
else:
    print('positive')

分支嵌套:
    else里可以嵌套if
例:
score = 80
if score<0:
    print('wrong')
else:
    if score==0:
        print('egg')
    elif score <= 100:
        print('right')
    else:
        print('too big')


折半查找        ##fold

例题:
给定一个不超过5位的正整数,判断其有几位,使用input函数
a = input('>>>')
a = int(a)
if a >= 1000:         #fold
    if a>=10000:
        print(5)
    else:
        print(4)
else:
    if a>=100:
        print(3)
    elif a >= 10:
        print(2)
    else:
        print(1)


循环——while语句
 语法
while condition:        ##循环条件等效于True进来为False进不来
block
 当条件满足即condition为True,进入循环体,执行block
 举例
flag=10
while flag:
  flag -= 1
  print(flag)

循环——for语句*(重点)
语法
    for element in iteratable:    #iteratable(可迭代对象),可迭代对象没东西,不执行
        block
当可迭代对象中有元素可以迭代,进入循环体,执行block
range函数        #range后是一个可迭代对象
例:
    range(1,5)        #[1,5)前包后不包,是一个range对象
    for x in range(10)        
        print (x)        #打印0-9    


循环 continue语句        #中断当前循环的当次执行,继续下一次循环
举例:计算10以内的偶数(for循环)
    for i in range(10):
        if not i%2:        #i%2偶数时是0,not 0就是ture打印
            print(i)

for i in range(0,10,2):     # 减少迭代次数,#range后面的是步长可以为负是反向
    print(i)

for i in range(0,10):         # 使用位与
    if i & 1:
        continue
    print(i)



循环 break语句        # 终止当前循环

举例:计算1000以内的被7整除的前20个数(for循环)
count = 0
for i in range(0,1000,7):
    print(i)
    count += 1
    if count >= 20:
        break

循环 continue、break语句总结

continue和break是循环的控制语句,只影响当前循环,包括while、for循环
如果循环嵌套, continue和break也只影响语句所在的那一层循环
continue和break 不是跳出语句块,所以 if cond: break 不是跳出if,而是终止if外的break所
在的循环

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


续上内容
#当碰到第一个为非零时后面的数都行

divmod函数
divmod(x,y,/)    #连整除带取模

循环else子句
语法
    while condition:
        block
    else:
        block
    for element in iteratable:
        block
    else:
        block
如果循环正常执行结束就执行else子句;如果break终止,else子句不会执行

#多方位思考问题,培养对称思想很多时候可以减小难度

转载于:https://www.cnblogs.com/springquanquan/p/9396822.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]中的代码,可以使用xlwings库中的range属性来获取Excel表格中的行数。具体的代码如下所示: ```python import xlwings as xw wb = xw.Book(r'F:\xlwings\OriginalData.xlsx') sht = wb.sheets\[0\] info = sht.used_range nrows = info.last_cell.row print(nrows) ``` 其中,`nrows`变量即为Excel表格中的行数。 另外,根据引用\[3\]中的代码,可以使用xlwings的range属性来设置行高。具体的代码如下所示: ```python import xlwings as excel excelApp = excel.App(False, False) excelFile = excelApp.books.add() sheet = excelFile.sheets.add('test') sheet.range('A1').row_height = 20 # 将行高设置为20像素 excelFile.save(r"c:\temp\csdn\test.xlsx") excelFile.close() excelApp.quit() ``` 在这个例子中,`sheet.range('A1').row_height = 20`将A1单元格的行高设置为20像素。 #### 引用[.reference_title] - *1* [xlwings——Python for Excel——xlwings如何获取有数据的所有行数和列数](https://blog.csdn.net/qq_31989047/article/details/103318044)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法](https://blog.csdn.net/LaoYuanPython/article/details/107131574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值