Python_day01-03

py01_day03笔记

day02 回顾

  • 运算符

    • 算术运算符

    • 比较运算符

      <    <=    >    >=   ==   !=
      
    • in / not in 运算符

      in  /  not in 
      
    • 布尔运算符(逻辑运算符)

      and  (与)     or(或)     not(非)
      
    • 布尔值为假的对象

      None       False     0        0.0       ''     []
      
    • 语句

    • 表达式

  • 语句

    1. 赋值语句

      自定义的变量名 =  表达式
      
    2. if 语句

      if 条件表达式1:
          语句块1
      elif 条件表达式2:
          语句块2
      elif 条件表达式3:
          语句块3
      ...
      elif 条件表达式n:
          语句块n
      else:
          语句块other
      
    3. pass 语句

    4. 表达式语句

      print("hello")
      
  • 函数

    str(x)
    int(x)
    float(x)
    bool(x)
    len(x)   # 用于字符串或后面学的容器类型
    
  • 字符串

    'hello'
    r'hello'  # 原始字符串
    print("\a\b\c\d\n")   # \a\b\c\d\n
    
    • in / not in
    'llo' in 'hello world'      # True
    
    • 索引
    字符串[整数表达式]
    'helloworld'[5]
    
    • 切片
    字符串[开始索引:终止索引:步长]
    >>> s = 'ABCDE'
    >>> s[2:4:-1]  # ''
    

day03笔记

  • 运算符的优先级
1 + 3 * 3 ** 2  + 4 // 2
1 + 3 * 9 + 4 // 2
1 + 27 + 4 // 2
1 + 27 + 2
28 + 2
30
  • 运算符优先级表
运算符描述
:=赋值表达式
lambdalambda 表达式
ifelse条件表达式
or布尔逻辑或 OR
and布尔逻辑与 AND
not x布尔逻辑非 NOT
in, not in, is, is not, <, <=, >, >=, !=, ==比较运算,包括成员检测和标识号检测
``
^按位异或 XOR
&按位与 AND
<<, >>移位
+, -加和减
*, @, /, //, %乘,矩阵乘,除,整除,取余 5
+x, -x, ~x正,负,按位非 NOT
**乘方 6
await xawait 表达式
x[index], x[index:index], x(arguments...), x.attribute抽取,切片,调用,属性引用
(expressions...),[expressions...], {key: value...}, {expressions...}绑定或加圆括号的表达式,列表显示,字典显示,集合显示

字符串的格式化表达式

  • 作用

    生成具有一定格式的字符串

  • 语法规则

    格式化字符串 % 参数1
    # 或者
    格式化字符串 % (参数1, 参数2, 参数3)
    
  • 占位符和类型码

  • 课间休息: 11:30 回来

占位符和类型码说明
%s转成字符串, 使用 str(x) 函数装换(常用)
%d转成 十进制的整数(常用)
%o转成 八进制的整数
%x,%X转成 十六进制的整数
%e,%E转成 指数格式的浮点数
%f,%F转成小数格式的浮点数(常用)
%g,%G转成指数格式或小数格式的浮点数
%%转成一个%
  • 示例1
>>> fmt = """
甲方:_____%s_____
乙方:_____%s_____
   ....... 金额:_%d__
"""
>>> s = fmt % ("魏眀择", '达内', 10000)
>>> print(s)

甲方:_____魏眀择_____
乙方:_____达内_____
   ....... 金额:_10000__

  • 示例2
>>> "+++%d+++" % 999    # 返回 '+++999+++'
'+++999+++'
>>> "+++%s+++" % 3.14
'+++3.14+++'
>>> "+++%s+++" % "weimz"
'+++weimz+++'
>>> "+++%d+++" % 3.1415
'+++3+++'
>>> "+++%d+++" % 13
'+++13+++'
>>> "+++%o+++" % 13
'+++15+++'
>>> "+++%x+++" % 13
'+++d+++'
>>> "+++%e+++" % 3.1415
'+++3.141500e+00+++'
>>> "+++%f+++" % 3.1415
'+++3.141500+++'
>>> "+++%g+++" % 3.1415
'+++3.1415+++'
>>> "+++%g+++" % 3141523274812374281342374324.23748123742183472
'+++3.14152e+27+++'

  • 占位符和类型码之间的格式化语法

    % [- + 0 宽度.精度] 类型码
    
    - 左对齐
    + 显示正号
    0 左侧空白位置补零
    宽度: 整个数据输出的宽度
    精度: 保留小数点以后多少位(默认小数点以后保留6位)
    常用于 %d 和 %f 中
    
    • 示例
    >>> "--%d--" % 99
    '--99--'
    >>> "--%5d--" % 99
    '--   99--'
    >>> "--%05d--" % 99
    '--00099--'
    >>> "--%5d--" % 99
    '--   99--'
    >>> "--%+5d--" % 99
    '--  +99--'
    >>> "--%-5d--"  % 99
    '--99   --'
    >>> "--%f--" % 3.1415926
    '--3.141593--'
    >>> "--%.2f--" % 3.1415926
    '--3.14--'
    >>> "--%7.2f--" % 3.1415926
    '--   3.14--'
    
  • 练习

写一个程序:
	输入一个字符串
	输入一个浮点数
	输入一个整数
	输出: 全为10个字节宽度的字符串如下:
如:
   请输入字符串: weimz
   请输入浮点数: 3.14
   请输入整数:   99
打印如下:
   +------------+
   | weimz      | 
   |       3.14 |
   | 0000000099 |
   +------------+

字符串的常用方法 (method)

  • 方法的调用语法

    对象.方法名(参数)
    
  • 示例:

    >>> "abc".isalpha() 
    True
    >>> "123".isalpha()
    False
    

    . 是"的"的意思

    • 字符串的常用方法
    方法名(S代表字符串对象)说明
    S.isalpha()判断字符串是否是英文字符
    S.isdigit()判断字符串是否是全为数字
    S.isupper()判断字符串是否是全为大写的英文字符
    S.islower()判断字符串是否是全为小写的英文字符
    S.center(width[, fill])将字符串按width 宽度居中,左右默认填充空格
    S.count(sub[, start[, end]])获取字符串中的子串的个数
    S.startwith(prefix)返回S是否以prefix 开头
    S.endswith(suffic)返回S是否以suffic结尾

    [] 代表其中的内容弄可以省略

    详见: https://docs.python.org/zh-cn/3/library/stdtypes.html#string-methods

  • 示例:

    >>> s = "ABC"
    >>> s.center(10)
    '   ABC    '
    >>> s.center(10, '#')
    '###ABC####'
    >>> s = 'hello world, hello china'
    >>> s.count('hello')
    2
    >>> s.count('hello', 10)
    1
    >>> s.count('hello', 10, 12)
    0
    >>> s = "/root/music/冰雨.mp3"
    >>> s.startswith('/root/')
    True
    >>> s.endswith('.mp3')
    True
    >>> s.endswith('music')
    False
    >>> s = 'welcome to Beijing'
    >>> s.upper()
    'WELCOME TO BEIJING'
    >>> s.lower()
    'welcome to beijing'
    >>> s.title()
    'Welcome To Beijing'
    
  • 语句回顾

    1. 表达式语句
    2. 赋值语句 name = input("xxxx: ")
    3. pass 语句
    4. if 语句
  • 循环语句

    • 种类

      • while 语句
      • for 语句
    • 问题:

      # 打印 1 行 hello world
      print("hello world!")
      
      

while 语句

  • 作用: 根据一定的条件,重复的执行某个语句块

  • 语法

    while 真值表达式:
        语句块1  (*此部分可能会重复执行)
    else:
        语句块2
    
  • 说明

    • else 子句可以省略
    • else 子句 当且仅当 真值表达式为假Flase的时候 会执行 else 里的语句块2
    • 如果 此 while 是因为 调用 break 语句而终止循环。则 else 子句里的语句不会执行
  • 示例1

    while 1 < 2:
        print("hello world")
    
  • 示例2

    # 打印 5 行 "hello world"
    i = 0
    while i < 5:
        print("hello world")
        i = i + 1  # 也可写成 i += 1
    else:
        print("while 语句已经结束!")
    
  • 练习1

    写一个程序,输入一个整数,写程序打印如下 n 行文字
    如:
       请输入: 10
       这是第 1 行
       这是第 2 行
       这是第 3 行
       ...
       这是第 10 行
    
  • 练习2

    写一个程序 打印1~20 的整数, 打印在 1 行内 每个数字之间用一个空格分隔开
    1 2 3 4 5 ... 19 20
    提示: print(x, end=' ')
    

语句嵌套

  • while 语句也是语句, 和其他的语句一样,可以嵌套到其他的任何复合语句中。

  • while 语句嵌套示意:

    while 真值表达式:
        ...
        while 真值表达式2:
            ...
        else:
            ...
        ......
    else:
        ...
    
  • 练习:

    写一个程序 打印1~20 的整数, 打印在 1 行内 每个数字之间用一个空格分隔开
    1 2 3 4 5 ... 19 20
    
    以上输入打印 10 行
    

break 语句

  • 作用: 用于循环语句(while, for语句)中, 当break 执行是,她会终止包含他的当前循环

  • 说明

    • break 语句只能用在 while 语句或for语句的内部.
    • break 语句通常和 if 语句组合使用.
    • 当break 语句执行后,此循环语句break 之后的所有语句都不会执行(else 子句里的语句也不执行)
    • break 语句只能终止包含他的当前循环,当有循环嵌套时,只能跳出离他最近的一个循环
  • 示例

    i = 1
    while i <= 5:
    	print('i=', i)
    	i += 1
    else:
        print('循环结束: i=', i)
    
    
  • 死循环

    • 死循环是指循环条件一直成立的循环
    • 死循环通常使用 break 语句来终止循环
    • 死循环的 else 子句中的语句永远不会执行

    写法

    while True:
        语句块
    

    死循环通常用户循环次数无法确定的循环

  • 练习1

    写程序,输入一个整数n , 代表结束的整数, 计算
            1 + 2 + 3 + 4 + ..... + n 的和
    请输入: 100
    5050
    # 提示: 
    he = 0  # 用一个变量来记录这个和
    
  • 课后练习1:

    写程序, 任意输入一些正整数, 当输入负数时结束输入,当输入完成后,打印您输入的这些数的和
    如:
       请输入: 1
       请输入: 2
       请输入: 3
       请输入: 4
       请输入: -1
       您刚才输入的正整数之和是: 10
    
  • 课后练习2

    打印 1~ 20 的整数, 每行打印 5 个, 打印 四行, 如:
    1 2 3 4 5
    6 7 8 9 10
    ...
    16 17 18 19 20  
    # 提示: print()  换行
    
  • 课后练习3

    已知, 局域网的IP 都是: 192.168.0.xxx
    写程序,生成 从 192.168.0.1 ~ 192.168.0.254 区间的 254 个 IP 地址
    
  • 课后练习4

    已知, 局域网的IP 都是: 192.168.xxx.yyy
    xxx 从 0 ~ 10, yyy 从 1 ~ 254
    写程序,生成 从 192.168.0.1 ~ 192.168.10.254   区间的 2540 个 IP 地址
    # 提示用循环嵌套
    

答案

已知, 局域网的IP 都是: 192.168.xxx.yyy

xxx 从 0 ~ 10, yyy 从 1 ~ 254

写程序,生成 从 192.168.0.1 ~ 192.168.10.254 区间的 2540 个 IP 地址

# 提示用循环嵌套

xxx = 0
while xxx <= 10:
# 此处 xxx =0, 生成 1~254 的数,交给 yyy
yyy = 1
while yyy <= 254:
# 生成 IP 地址
ip = ‘192.168.%d.%d’ % (xxx, yyy)
print(ip)
yyy += 1
xxx += 1

  • 课后练习5
    写一个程序,输入三行文字, 按最长的一行, 打印如下图形方框
    请输入: hello
    请输入: welcome to beijing 
    请输入: aaaaaaa
    打印:
    +--------------------+
    |       hello        |
    | welcome to beijing |
    |       aaaaaaa      |
    +--------------------+
    提示: str.center(width)
    

s1 = input(“请输入:”) # ctrl + d 可以复制当前行
s2 = input(“请输入:”)
s3 = input(“请输入:”)
len1 = len(s1) # 求取字符串的长度
len2 = len(s2)
len3 = len(s3)
从上面三个数中,找出最大的一个, 用 mymax 变量绑定

方法2, 通用的算法
mymax = len1
if len2 > mymax: mymax = len2
if len3 > mymax: mymax = len3

方法1
if len1 > len2:
mymax = len1

让 len1 和 len3 再比较

if len1 > len3:
else:
mymax = len3
else:

让 len2 和 len3 再比较

if len2 > len3:
mymax = len2
else:
mymax = len3

print(‘最大长度是:’, mymax)
计算第一行
line1 = ‘+’ + ‘-’ * (mymax +2) + ‘+’ print(line1)
文字的第一行

方法1 , 用 str.center 居中文字的第一行
center_s1 = ‘| ’ + s1.center(mymax) + ’ |’

方法2 , 用 自己的方法 居中文字的第一行
left_blanks = (mymax - len1) // 2 # 计算左侧的空格数 right_blanks = mymax - len1 - left_blanks # 计算右侧的空格数 center_s1 = ‘| ’ + ’ ’ * left_blanks + s1 + ’ ’ * right_blanks + ’ |’ print(center_s1)
文字的第二行
center_s2= ‘| ’ + s2.center(mymax) + ’ |’ print(center_s2)
文字的第三行
center_s3 = ‘| ’ + s3.center(mymax) + ’ |’ print(center_s3)
打印最后一行
print(line1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值