Python语言开发基础模板
- 
基础阶段 变量常量
 与用户交互输入/格式化输出
 基本运算符
 常见操作符
 逻辑运算符
 成员运算与身份运算
 分支结构之if分支
 循环结构之while循环
 循环结构之for循环变量常量"""
 计算机主要就是模仿人
 变量和常量其实就是模仿人的记忆能力
 eg:
 大街上看到老师 立刻就认出来
 姓名是jason 年龄是18 身高是183 体重78
 """
 变量
 用于记录事物的变化状态
 eg:年龄 身高 体重
 常量
 用于记录事物的不变状态
 eg:圆周率 重力加速度
 
 基本使用
 name = 'jason'
 """
 name是变量名/常量名
 =是赋值符号
 'jason'是数据值
 ps:其实变量名和常量名本质是一样的 都是一个代名词(名字)
 """
 总结
 一个数据值可以有多个变量名绑定
 一个变量名只能绑定一个数据值
与用户交互输入输出
输入
username = input('请输入您的姓名>>>:')  # 输入
print(type(username))  # 输出
"""
1.先获取用户输入的数据 
2.然后绑定给变量名username
3.后续可以通过变量名username反复使用用户输入的数据
注意:input获取到的用户输入都会自动转成字符串类型
"""
格式化输出
"""
提前准备好一些文本 然后将将来可能需要改变的地方 提前打上标记 之后动态修改
    eg:奖状、录取通知书、合同
尊敬的XXX用户 您本月的话费是XXX 余额是XXX
    尊敬的jason用户 您本月的话费是100 余额是1000000
    尊敬的kevin用户 您本月的话费是200 余额是100
"""
# desc = "尊敬的%s用户 您本月的话费是%s 余额是%s"
# %s就是专门用于占位的 提醒用户将来打印的时候应该给%s传具体的数据值
# print(desc)  # 尊敬的%s用户 您本月的话费是%s 余额是%s
# print(desc % ('jason', 100, 100000))  # 尊敬的jason用户 您本月的话费是100 余额是100000
# print("尊敬的%s用户 您本月的话费是%s 余额是%s" % ('kevin', 99, 100))  # 尊敬的kevin用户 您本月的话费是99 余额是100
# 占位符其实有很多 %s是使用频率最高的 %d
# desc1 = "尊敬的%d用户 您本月的话费是%s 余额是%d"
# print(desc1 % (999, 100, 100000))
"""
%s将来可以接收任意类型的数据(随便给数据)
%d将来只能接收数字类型的数据(不能随便给)
"""
# print('%08d' % 111)  # 00000111  不够8位0填充
# print('%08d' % 11111111111)  # 11111111111  够了有几位展示几位
username = input('username>>>:')  # 获取用户名
age = input('age>>>:')  # 获取用户年龄
gender = input('gender>>>:')  # 获取用户的性别
job = input('job>>>:')  # 获取用户的工作
print("""
-----------info of %s ------------
姓名:%s
年龄:%s
性别:%s
工作:%s
------------------------------------
""" % (username, username, age, gender, job))
基本运算符
数学运算符
    + - * / // % **
  x = x - 10  # 等价于 x -= 10
  x = x + 10  # 等价于 x += 10
  x = x * 10  # 等价于 x *= 10
  x = x / 10  # 等价于 x /= 10
  ps:以后统一使用简化之后的写法 前面的写法不要用
 
比较运算符
    <   小于
    <=  小于等于
    >   大于
    >=  大于等于
    ==  等于
    !=  不等于
    print(5 == 5)  # True  判断5是不是等于5
     print(5 != 5)  # False 判断5是不是不等于5
常见操作符
# name = 'jason'
# name1 = name
# name2 = name
# 链式赋值
name = name1 = name2 = 'jason'
m = 10
n = 666
# 将变量名m和n绑定的值互换
# m = n
# n = m
# print(m, n)  # 666 666
# 交叉赋值
# m, n = n, m
# print(m, n)  # 666 10
# 底层原理
temp = m
m = n
n = temp
print(m, n)  # 666 10
name_list = ['jason', 'kevin', 'tony', 'oscar']
# name1 = name_list[0]
# name2 = name_list[1]
# name3 = name_list[2]
# name4 = name_list[3]
# 解压赋值(重要)
# name1, name2, name3, name4 = name_list  # 正确
# name1, name2, name3 = name_list  # 默认情况下两边的个数要一致
# name1, name2, name3, name4, name5 = name_list  # 默认情况下两边的个数要一致
"""解压赋值也可以打破个数一致性"""
# name1, *a, name2 = name_list
# print(name1)  # jason
# print(name2)  # oscar
# print(a)  # ['kevin', 'tony']
# name1, *a = name_list
# print(name1)  # jason
# print(a)  # ['kevin', 'tony','oscar']
*a, name1, name2 = name_list
print(name1)  # tony
print(name2)  # oscar
print(a)  # ['jason', 'kevin']
逻辑运算符
and     与
    and链接的多个条件必须同时成立 整体结果才成立
    eg:你去相亲你提出的要求是 女方身高必须160以上并且长得必须好看并且家里必须有钱并且学历研究生起步并且非常爱你
      
or      或
    or链接的多个条件只要有一个成立 整体结果就成立
    eg:你去相亲你提出的要求是 女方长得必须好看或者家里必须有钱或者非常爱你
      
not     非
    对整体结果取反(对的变成错的 错的变成对的)
  
print(111 > 0 and 3 > 4 and 10 > 4 and True)  # False
print(111 < 0 or 3 > 4 or 10 > 4 or True)  # True
print(not True)  # False
print(not False)  # True
"""
上述三个运算符可以混合使用 并且在混合使用的情况下 是有执行优先级的
但是我们不需要记忆 应该在编写的时候就人为的限制住先后顺序 
    eg:  先乘除后加减 但是可以通过加括号改变顺序
"""
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
成员运算与身份运算
成员运算
    判断某个个体在不在某个群体内
    in              在就返回True不在就返回False
    not in      与上面结果互为反关系
name_list = ['jason', 'tony', 'kevin', 'oscar', 'jerry']
target_name = input('username>>>:')
print(target_name in name_list)
身份运算    
    判断两个变量名绑定的值是否是同一个
  """id()返回一串数字 可以代表内存地址"""
l1 = ['jason', 'tony', 'kevin', 'oscar', 'jerry']
l2 = ['jason', 'tony', 'kevin', 'oscar', 'jerry']
# print(id(l1))  # 4672283208
# print(id(l2))  # 4711190408
print(l1 == l2)  # 判断两个变量绑定的数据值是否相同(长得一模一样就可以)  True
print(l1 is l2)  # 判断两个变量绑定的数据值是否就是同一个(就得是一个人)  False
"""
数据值相同 内存地址可能不等
内存地址相等 数据值肯定相等
"""
分支结构之if分支
语法结构
1.if单分支结构
    """
    if 条件:
       条件成立之后执行的代码
    """
2.if...else...分支结构
    """
    if 条件:
         条件成立之后执行的代码
  else:
     条件不成立执行的代码
    """
  ps:if跟else连用 一山不容二虎 走了其中一个另外一个肯定不走
 
3.if...elif...else...分支结构
    """
    if 条件1:
         条件1成立之后执行的代码
    elif 条件2:
       条件1不成立条件2成立执行的代码
    else:
         上述所有的条件都不成立 执行的代码
    """
  ps:
        1.if、elif、else连用也只会走其中一个子代码
       2.中间的elif可以有多个
      
4.分支结构嵌套
  height = 175
  weight = 100
  is_beautiful = True
  is_success = True
  if height > 160 and weight < 110 and is_beautiful:
      print('完全符合您的审美 上去要微信')
      if is_success:
          print('邀请去吃饭看电影')
          if is_success:
              print('逛街散步天黑了')
          else:
              print('不想逛街散步 天气太热了')
      else:
          print('不想吃饭看电影 没意思')
  else:
      print('太丑了 不符合我的审美')
循环结构之while循环
语法结构
"""
while 条件:
条件成立之后执行的子代码
1.先判断条件是否成立 如果成立则运行子代码
2.子代码运行结束之后 会再次回到条件处判断条件是否成立
3.如果成立 则继续执行子代码
4.子代码运行结束之后 再次回到条件处判断条件是否成立
依次反复执行上述的操作 直到条件不成立 退出循环
"""
1.while+break配合使用
break用于结束本层循环
如何理解本层循环?
一个break只能结束它所在的那个while循环
while True:
print('我是第一层while循环')
while True:
print('我是第二层while循环')
break
break
2.while+continue配合使用
continue用于结束本次循环 直接开始下一次循环(直接跳到条件判断处 重新判断)
一个continue也是只能影响所在的那一层while
count = 0
while count < 11: # 被动退出:不需要关键字 是条件不符合了!!!
if count == 7:
count += 1
continue # 结束本次循环 直接开始下一次循环(直接再次跳到条件判断处)
print(count)
count += 1
3.while+else配合使用
else当while没有被break主动结束的情况下 当while循环体代码运行结束之后就会走else的子代码
count = 0
while count < 11: # 被动退出:不需要关键字 是条件不符合了!!!
if count == 7:
count += 1
# continue
break # 主动结束循环
print(count)
count += 1
else:
print("while没有被break主动结束的情况下 执行完循环体就会执行该子代码")
4.避免死循环
1.循环体代码中不要出现纯计算的死循环
while True:
count *= 10 # 代码是纯计算 没有任何的间歇 不推荐编写 一旦出现应
2.全局标志位
flag = True
while flag:
username = input('username>>>:')
while flag:
password = input('password>>>:')
while flag:
res = input('res>>>:')
if res == 'q':
flag = False
循环结构之for循环
"""
for循环能够做到的事情while循环其实都可以做到
    但是for循环的语法结构更加简单 并且针对循环取值问题更加高效!!!
"""
前戏
    name_list = ['jason', 'kevin', 'oscar', 'jerry']
  # 使用while循环打印出列表中所有的数据值
  # count = 0
  # while count < 4:
  #     print(name_list[count])
  #     count += 1
  # 使用for循环打印出列表中所有的数据值 
  for i in name_list:
      print(i)
语法结构
    """
    for 变量名 in 可迭代对象:  # 字符串 列表 字典 元组 集合
        for循环体代码
  ps:可迭代对象暂且不用考虑 直接等价于后面的几个数据类型即可
    1.每次循环都是将变量名临时绑定一个数据值
    2.每次循环结束之后重新绑定一个数据值
    3.能够自动识别是否已经没有数据可取 并且自动结束循环 不需要人为添加条件
  针对变量名的命名尽量也做到见名知意 如果真的不知道起什么
    可以使用常见的字母 i j k v item
    如果明确的知道数据表示的意思 应该见名知意
        for name in 学生名单
        for addr in 学生地址
  """
常见循环的数据类型
    for i in 'hello':
    print(i)  # 一次拿一个字符
    for i in {'name': 'jason', 'pwd': 123}:
    print(i)  # 字典参与for循环之后key会被获取
1.for+break配合使用
    break用于结束本层for循环
    for i in [1, 2, 3, 4, 5, 6, 7, 8]:
      if i == 4:
          break
      print(i)
      
2.for+continue配合使用
    continue用于结束本次for循环
    for i in [1, 2, 3, 4, 5, 6, 7, 8]:
      if i == 4:
          continue
      print(i)
      
3.for+else配合使用
    for循环没有被break主动打断 正常运行结束 最后会走else子代码
    for i in [1, 2, 3, 4, 5, 6, 7, 8]:
      if i == 4:
          break
      print(i)
    else:
        print('哈哈哈')
ps:与while的配置使用一模一样
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号