小白进化记--Python3 --Python字符串(str)和 if 语句

回顾
python的版本
   python V2
  python V3

python的运行:
  1. 在命令行提示符下
    $ python3 xxxx.py
  2. 在交互模式下执行:
    $ python3 <回车>
     >>>
     >>> quit() / exit() / ctrl+d # 退出
    python的注释:
    以 # 开头,直至行尾
-------------------------
python常用的数据类型:
数字类型:
    int
   0, 999999999, -2, 0b1001, 0o11, 0x9
    float
    3.14, 0.314e1 314.0e-2
    complex
    1+2j
   bool
    True, False
    字符串
   列表
    …
   空值对象
    None, 代表不存在(啥也没有)
-------------------------
运算符:
   算术运算符:
     + - * / //(地板除) % (求余) **(幂运算)
   比较运算符:
      < <= > >= ==(等于) !=(不等于)
   赋值语句:
      变量 = 表达式
      变量1 = 变量2 = 变量3 = 表达式
      变量1, 变量2, 变量3 = 序列
     作用是创建变量用来绑定表达式执行的结果
del语句:
   del 变量名
   作用是删除变量
--------------------------
is,is not 运算符
   判断两个对象的id是否相同

复合赋值算术运算符:
    += -= *= /= //= %= **=
    y +=x 效果等同于 y = y + x

函数:
    类型转换函数:
     float(obj)
     int(x, base=10), int(x=0)
     complex(r=0.0, i=0.0)
     bool(x)
   函数调用的语法规则
     函数名(传参列表)
     函数调用是表达式,一定会返回一个结果(结果可能是None)
--------------------------------
数值型函数:
    abs(x) 取x的绝对值
    round(number[,ndigit]) 取number的近似值
     pow(x, y, z=None) # 求x的y次方或x的y次方对z求余

查看帮助的函数:
      >>> help(‘字符串’)
    >>> help(函数名)

基本输入输出函数:
     input(“提示字符串”) # 获取用户输入的字符串
    print(value1, value2,…, sep=’ ‘, end=’\n’))
   作用是把数字形成字符串后打印在屏幕终端上

if 语句
  问题:
   有两条语句:
     print(“这个数是偶数”)
      print(“这个数是奇数”)
      如何只让其中的一条执行???

if语句的作用:
    让程序根据条件选择性的执行某条语句或某些语句

语法:
     if 真值表达式1:
    语句块1…
    elif 真值表达式2:
     语句块2…
    elif 真值表达式3:
     语句块3…
       …
     else:
     语句块4
   说明:
    elif 子句可以有0个,1个或多个
     else 子句可以有0个或1个,且只能放在if语句的最后

示例见:

# 此示例示意让用户输入任意一个整数 
# 让程序来判断这个数是奇数还是偶数
s = input("请输入一个整数: ")    # 获取用户输入的字符串
n = int(s)    # 把s绑定的字符串转为整数用n绑定
# 下面对if语句来判断用户输入的数是奇数还是偶数
# 偶数能被2整除,即 n % 2 如果等于0,则n为偶数
if n % 2 == 0:
    print("这个数是偶数")
else:
    print("这个数是奇数")

练习:
任意输入一个整数
1) 判断这个数是否大于100
2) 判断这个数是否小于0
3) 判断这个数是否在50~150之间
(建议每一步用一个if语句来实现)

n = int(input("轻人意输入一个整数:"))
if n > 100:
    print(n,'是大于100的数')
else:
    print(n,'是小于100的数')
if n < 0:
    print(n,'是小于0的数')
else:
    print(n,'是大于0的数')
if 150 > n > 50:
    print(n,'是大于50小于150的数')
else:
    print(n,'不是大于50小于150的数')

if-elif-else示例见:

# 输入一个数字,用程序来判断这个数是正数,
# 是负数还是零
# 以下两行可以改写为一行
# s = input("请输入一个数字: ")
# f = float(s)  # 转为浮点数
f = float(input("请输入一个数字: "))

# 开始判断
if f < 0:
    print(f, '是负数')
elif f > 0:
    print(f, '是正数')
# elif f == 0:
else:
    print(f, '是零')

练习:
  1.输入一个季度1 ~ 4 输出这个季度有哪儿几个月份.
   如果输入的不是1~4的整数,提示用户您输错了

  1. 输入一年中的月份(1~12),输出这个月在哪儿个季度。
    如果输入的是其它的数,则提示您输错了
n = int(input("请输入一个季度:"))
if n == 1:
    print("这个季度有1月2月和3月")
elif n == 2:
    print("这个季度有4月5月和6月")
elif n == 3:
    print("这个季度有7月8月和9月")
elif n == 4:
    print("这个季度有10月11月和12月")
else:
    print("您输错了!")
print("-----------------------------------")
m = int(input("请输入一个月份:"))
if 1 <= m <=3:
    print("这个月在第一季度") 
elif 4 <= m <=6:
    print("这个月在第二季度")
elif 7 <= m <=9:
    print("这个月在第三季度")
elif 10 <= m <=12:
    print("这个月在第四季度")
else:
    print("您输错了!")

if 语句嵌套
    if语句本身是由多条子句组成的一条复合语句
    if语句可以作为语句嵌套到另一个复合语句的内部

示例见:

# 此示例示意if语句嵌套到另一个if语句内部
# 用嵌套实现输入月份判断季节

month = int(input("请输入月份(1~12): "))

if 1 <= month <= 12:
    print("输入正确")
    if month <= 3:
        print("春季")
    elif month <= 6:
        print("夏季")
    elif month <= 9:
        print("秋季")
    else:
        print("冬季")
else:
    print("您的输入有误")

条件表达式
   语法:
      表达式1 if 真值表达式 else 表达式2
   作用:
      根据真值表达式的取值(True/False) 来决定执行表达式1
     或者表达式2并返回结果
    示例见:

# 此示例示意条件表达式的语法和用法
# 商场促销,满100 减 20
money = int(input("请输入商品总额: "))

# 计算需要支付金额
pay = money - 20 if money >= 100 else money
# 如果money >= 100 为True,相当于 pay=money-20
# 如果money >= 100 为False,相当于pay=money

print("您需要支付:", pay, "元")

练习:

  1. 写一个程序,输入一个数,用if语句计算出这个数的
    绝对值并打印出来
  2. 写一个程序,输入一个数,用条件表达式计算出这个数
    的绝对值并打印出结果
n = int(input("请输入一个整数: "))

# 方法1
if n > 0:
    r = n
else:
    r = -n

# 方法2
r = n
if r < 0:
    r = -r

print(n,'的绝对值是:', r)
n = int(input("请输入一个整数: "))

r = -n if n < 0 else n

print(n,'的绝对值是:', r)

pass 语句
  作用:
     通常用来填充语法空白
     pass 又名空语句
  语法:
     pass
  示例见:

# 让用户输入1~12的数字。如果不符合条件,则提示输入有误
n = int(input("请输入数字(1~12): "))

if 1 <= n <= 12:
    # print("条件满足")
    pass
else:
    print("您的输入有误!")

# if not 1 <= n <= 12:
#     print("您的输入有误!")

# if n < 1 or n > 12:
#     print("您的输入有误!")

布尔运算:
  运算符:
     not and or
     非 与 或

布尔非操作 not
   语法
     not x
    作用:
     对x进行布尔取非,如bool(x) 为True,则返回False,
     否则为True
   示例:
     布尔与操作 and
   语法:
      x and y
     注: x,y 代表表达式
   作用:
    优先返回假值对象,当x的布尔值为False时,返回x
    否则返回y
   示例:
    True and True    # True
     True and False   # False
     False and True    # False
    False and False    # False
     100 and 0.0     # 0.0
     0 and 0.0      # 0

布尔或操作 or
    语法:
      x or y
    作用:
      优先返回真值对象,当x为True时返回x,否则返回y
    示例:
      True or True   # True
     True or False   # True
      False or True   # True
      False or False  # False
      3.14 or 100    # 3.14
      0 or 0.0     # 0.0

正负号运算符
    +(正号) -负号
    注: 一元运算符(一个元素参加运算)
   语法:
    + 表达式
    - 表达式
   示例:
    a = 5
    b = -a # -负号
    c = +a # 正号
    print(a, b, c) # 5 -5 5

字符串 str
   作用:
     用来记录文字(文本)信息
  表示方法:
     在非注释中凡是用引号括起来的部分都是字符串
      ’ 单引号
      " 双引号
      ‘’’ 三单引号
      “”" 三双引号
     空字符串的字面值表达方法
      ‘’ “” ‘’’’’’ “”""""
      非空字符串的字面值的表达方法
      ‘hello’ “hello” ‘’‘hello’’’ “”“hello”""

单引号和双引号的区别
   单引号内的双引号不算结束符
    双引号内的单引号不算结束符
示例见:

print("I'm a Teacher!")
print('My name is "Weimingze"')

三引号字符串的作用:
   三引号字符串可以包含单引号和双引号
    三引号字符串中的换行会自动转换为换行符’\n’
示例见:

s1 = '''"'内容'"'''
print(s1)

s2 = 'welcome to beijing.\nI like python!\nI am Studing!'
print(s2)

s3 = '''welcome to beijing.
I like python!
I am Studing!'''

print(s3)

if s2 == s3:
    print("s2与s3完全相同!")

隐式字符串字面值拼接
  示例:
     s = “I’m a teacher” ‘my name is “Tarena”’
     print(s) #

用转义序列代表特殊字符
   字符串字面值中用字符反斜杠 \ 后跟一些字符代表
    特殊的一个字符,如:
   转字格式 含义
     \’ 代表一个单引号
     \" 代表一个双引号
     \\ 代表一个反斜杠
     \n 换行
     \r 返回光标至行首
     \f 换页
     \t 水平制表符
     \v 垂直制表符
     \b 倒退
     \0 空字符(字符值为0)
     \0oo oo为两位八进制表示的字符
     \xXX XX为两位十六进制表示的字符
     \uXXXX 四位十六进制表示的Unicode 16字符
    \UXXXXXXXX 八位十六进制表示的Unicode 32字符

ASCII编码表
   $ man ascii<回车>

常用的ASCII编码
     字符 十进制 十六进制
      ‘0’   48   0x30
     ‘A’   65   0x41
      ‘a’   97   0x61

序列的概念
   字符串是序列(有序排列)
    所有的序列都能用len(x) 函数求其长度

len(x) 函数
   返回字符串中字符的个数

raw 字符串(原始字符串)
   格式:
    r’字符串内容’
    r"字符串内容"
    r’’‘字符串内容’’’
    r""“字符串内容”""
   作用:
   让转义符号反斜杠 \ 无效
   示例:
    a = ‘C:\newfile\test.py’
    print(a)
    print(len(a))
    a = r’C:\newfile\test.py’
    print(a)
    print(len(a))

字符串的运算:
  运算符:
    +   +=   *  *=
   + 加号运算符用于拼接字符串
   x = “ABCD”
    y = “123”
    z = x + y
   print(z) # ABCD123
    += 用于原字符串和右侧字符串拼接,再用变量绑定新的
字符串
  x = ‘ABC’
   y = ‘123’
  x += y
  print(x) # ABC123

* 运算符生成重复的字符串
   x = “ABC” * 3
   print(x) # ABCABCABC
  注: 字符串只能和整数相乘
*= 生成重复的字符串,再用原变量绑定
   x = ‘123’
   x *= 2
   print(x) # 123123

字符串的比较运算
   运算符:
    < <= > >= == !=
   比较规则:
     依次按编码值进行两两字符比较,一但不同,则比较结束
     并返回比较结果,当编码值和长度完全相同时,两个字符
     串相同
    示例:
     ‘A’ < ‘B’ # True
     ‘ABC’ > ‘ABB’ # True
     ‘ADC’ < ‘ABC’ # False
     ‘ABC’ >= ‘123’ # True
     ‘AB’ < ‘ABC’ # True
     ‘abc’ == ‘ABC’ # False

in, not in 运算符
   作用:
      in 用于序列,字典,集合中,用于判断某个值是否存
      在于容器中,如果存在则返回True,否则返回False
      not in 与 in 运算符的返回结果相反
格式:
   对象 in 序列
   示例:
     x = ‘welcome to tarena!’
     ‘to’ in x    # True
     ‘hello’ in x # False
     ‘e t’ in x    # True
     ‘abc’ not in x # True

练习:

  1. 北京出租车计价器:
    收费标准:
    3公里以内收费 13元
    基本单价 2.3元/公里(超出3公里以外)
    空驶费: 超过15公里后,每公里加收单价的50%的
    空驶费(3.45元/公里)
    要求: 输入公里数,打印出费用金额
km = float(input('请输入公里数:'))
pay = 0
if km <= 3:
    pay = 13
elif 3 < km <= 15:
    pay = 13 + 2.3 * (km - 3)
elif km > 15:
    pay = 13 + 2.3 * (km - 3) + \
           2.3 * .5 * (km - 15)


print("您需要支付:", pay, )
  1. 计算 BMI指数(Body Mass Index) 又称身体质量指数
    计算公式:
    BMI = 体重(公斤)/身高的平方(米)
    如:一个69公斤的人,身高173公分,则
    BMI = 69 / 1.73 ** 2 # 得23.05
    标准表:
    BMI < 18.5 体重过轻
    18.5 <= BMI < 24 体重正常
    BMI >= 24 体重过重
    要求: 输入身高和体重,打印BMI的值,并打印体重状况
kg = float(input("请输入体重(公斤): "))
m = float(input("请输入身高(米): "))
bmi = kg / m ** 2
print("BMI =", bmi)
  1. 写一个程序.打印一个高度为4行的矩形方框
    要示方输入一个整数,此整数代表矩形的宽度,输入此矩形
    如:
    请输入矩形宽度: 10
    打印如下:
    ##########

    ##########
    如果输入的数字越大,则此矩形会越宽
w = int(input("请输入宽度: "))

# 第一行
print('#' * w)

# 中间两行
line = '#' + ' ' * (w - 2) + '#'
# print(line)
# print(line)
print("#", ' ' * (w - 2), "#", sep='')
print("#", ' ' * (w - 2), "#", sep='')

# 最后一行
print('#' * w)

你可能感兴趣的:(Python3)