1-Python笔记:Python基础语法和流程控制

最近开始看Python,所以也把学习的过程中笔记分享出来,供大家一起学习,基于Python3.7版本

变量

变量名命名规则

  • 1、 字母,数字,下划线的组合
  • 2、 不能由数字开头
  • 3、 不能使用内置关键字
  • 4、 严格区分大小写

变量命名习惯

  • 1、 见名知义
  • 2、 大驼峰:即每个单词首字母都大写
  • 3、 小驼峰:第二个包含后面的单词首字母大写
  • 4、 下划线连接单词

数据类型

  • 数值:整型 int 浮点型 float
  • 布尔型:真 true 假 false
  • 字符串型:str
  • 列表:list
  • 元组:tuple
  • 集合:set
  • 字典:dict

格式化输出符号

  • ==%s 字符串==
  • ==%d 有符号的十进制整数==
  • ==%f 浮点数==
  • %c 字符
  • %u 无符号的十进制整数
  • %o 八进制整数
  • %x 十六进制整数(小写)
  • %X 十六进制整数(大写),
  • %e 科学计数法(小写)
  • %E 科学计数法(大写)
  • %g 是%f和%e的简写,
  • %G %f和%E的简写
# 我的年龄是x岁
# 我的名字是x
age = 18
name_my = 'sean'
print('我的名字是%s,我的年龄是%d岁' % (name_my, age))

输出技巧

  • %03d,表示输出的整数显示位数,不足的以0补全,超出的则原样输出
# 我的学号是,整数,需要补全位数
stuid = 1
print('我的学号是%03d' % stuid)

结果是001
  • %.2f,表示小数点后显示的小数位数
# 我的体重有x公斤
weight = 75.6
print('我的体重有%.2f公斤' % weight)

结果是75.60
格式化输出字符串

除了%s,还可以写成==f'{表达式}'== 从pyhon 3.6开始有的新方法

eg:使用f'{表达式}'方法输出
print(f'我的名字是{name_my},我的年龄是{age},明年是{age + 1}岁,我的体重有{weight}公斤\n')

输出格式,总结

# 综合输出
print('我的名字是%s,我的年龄是%d,我的体重有%.2f公斤' % (name_my, age, weight))
print('我的名字是%s,我的年龄是%d,明年的年龄是%d,我的体重有%.2f公斤' % (name_my, age, age + 1, weight))
print('我的名字是%s,我的年龄是%d,明年的年龄是%d,我的体重有%.2f公斤,我的学号是%03d' % (name_my, age, age + 1, weight, stuid))
# 全部转义成字符串类型输出
print('我的名字是%s,我的年龄是%s,明年的年龄是%s,我的体重有%s公斤,我的学号是%03d' % (name_my, age, age + 1, weight, stuid))

# 使用f'{表达式}'方法输出 python3.6以后有这种方式
print(f'我的名字是{name_my},我的年龄是{age},明年是{age + 1}岁,我的体重有{weight}公斤\n')

使用input函数输入

输入,使用input("提示信息")函数,
当程序执行到input,等待用户输入,再往下执行,
input接收到用户输入后,一般存储到变量中再使用,
input会把用户输入的数据当作字符串处理

实例1:

password = input('请输入密码:')
print(f'您输入的密码是{password}')
print(type(password))

执行结果:

请输入密码:1234
您输入的密码是1234

将输入的数据转换成需要的类型,需要使用转换函数
实例2:

# 数据类型转换函数:int() float() str() list() tuple() eval()
print(int(95.6))     # 强制转换为int类型

str1 = '18,19,20'
str2 = eval(str1)    # eval() 把一个字符串中的python表达式,转换成一个对应的数据类型
str3 = set(str2)     # 强制转化为set(集合类型)

print(eval(str1))
print(type(eval(str1)))
print(list(str2))    #强制转化为list类型输出
print(str3)

执行结果:

95
(18, 19, 20)

[18, 19, 20]
{18, 19, 20}

转义字符

  • \n 换行符
  • \t 制表符,等于tab 相当于4个空格
# 验证换行符,和制表符
print("hello\nmy friend")
print("hello\tmy\tfriend")

结束符

print函数默认换行符为结束符,可以自己改变不是换行

print('输出的内容',end="\t")
# 验证结束符
print('hello world', end='\t\t')
print('hello my friend', end='\n')

运算符

分类:

  • 算术运算符
  • 赋值运算符
  • 复合赋值运算符
  • 比较运算符
  • 逻辑运算符

特殊的算术运算符

  • //整除
  • **指数运算
  • %取余数

特殊的赋值运算

多个变量赋值

eg:num1,float1,str1 = 10,0.5,"hello world"

多个变量赋相同值

eg:a = b = 10

复合赋值运算符

image

先算运算符右边的表达式,再复合赋值

比较运算符

image

逻辑运算符

  • and 两个都是真才返回真
  • or 两个有一个为真就返回真
  • not 非真为假,非假为真


    image

数字之间的逻辑运算

image

条件判断

if else 语句

网吧上网判断年龄的实例

# 网吧上网判断年龄的例子

age = int(input('请输入你的年龄:'))          #读取用户输入的年龄

if age >= 18:                               #判断输入的年龄是否大于18岁
    print('你的年龄满了十八岁,可以上网')         #大于18岁就可以上网
else:
    print('你的年龄没有满18岁,不能上网')        #否则不能上网

print('系统关闭')

另一种输出方式

# 网吧上网判断年龄的例子

age = int(input('请输入你的年龄:'))          #读取用户输入的年龄

if age >= 18:                               #判断输入的年龄是否大于18岁
    print(f'你的年龄满了{age}岁,可以上网')         #大于18岁就可以上网
else:
    print(f'你的年龄是{age}岁,不能上网,回家写作业去')        #否则不能上网

print('系统关闭')

注意:如果某些条件成立了,执行了相关代码,其他情况的代码就不会被执行

多重判断

语法:


image

多重判断也可以和else配合使用,一般else放在整个if语句的最后,表示以上条件都不成立的时候执行的代码

示例:

'''
  if else 多重条件判断语句实例
'''
age1 = int(input('请输入您的年龄:'))

if (age1 < 18) and (age1 >0):
    print(f'您输入的年龄是{age1},属于童工,不合法的')
elif (age1 >= 18) and (age1 <= 65):
    print(f'您输入的年龄是{age1},是合法年龄,可以工作')
elif age1 > 65:
    print(f'您输入的年龄是{age1},输入退休年龄')
else:
    print('您的输入有误')

拓展: (age1 >= 18) and (age1 <= 65) 可以简化为:18 <= age1 <= 65

多重判断实例:猜拳游戏
'''
   多重判断实例:猜拳游戏,利用随机数
'''
import random
print('提示:0--石头,1--剪刀,2--布')
player = int(input('请出拳:'))
computer = random.randint(0, 2)  # 用随机数代替电脑出拳
# 玩家赢的情况
if (player == 0 and computer == 1) or (player ==1 and computer == 2) or (player == 2 and computer == 0):
    print('玩家赢了,哈哈')
elif player == computer:
    print('是平局,再来一局')
else:
    print('电脑赢了,真遗憾!')

if语句的嵌套语法

语法:


image

注意:条件2的if与条件1的if的关系,体现在缩进关系

实例:

'''
    if嵌套语句实例,坐公交
'''
money =int(input('请问带钱了吗:'))  # 输入1代表有钱,0代表没钱

if money == 1:
    print('土豪,请上车')
    seat = int(input('有座位吗:'))  # 输入1代表有座位,0代表没有
    if seat ==1:
        print('有座位,请座')
    else:
        print('没有座位,站着吧')

else:
    print('没钱,跟着跑,跑快点')

拓展:三目运算符

三目运算符也叫三元运算符或者三元表达式,目的是缩减代码

条件成立执行表达式:if 条件 条件不成立,执行表达式 else 条件

示例:


image
'''
  三目运算符实例
  输入两个整数,取它们的整数差
'''
num_1 = int(input('请输入第一个整数'))
num_2 = int(input('请输入第二个整数'))

num3 = num_1 - num_2 if num_1 > num_2 else num_2 - num_1
print(num3)

循环语句

Python中,循环分为while和for两种,最终实现效果相同

while循环语法

while 条件:
     条件成立重复执行的代码1
     条件成立重复执行的代码2

实例1:

# 输出5次 “媳妇儿,我错了!”
i = 0
while i < 5:
    print('媳妇儿,我错了!')
    i = i + 1

实例2:

# while应用,1到100的累加
sum = 0
i = 1
while i <= 100:
    sum = sum + i
    i = i + 1
print(f'1到100累加的和是{sum}')

实例3:

# while 应用,1到100偶数的累加,方法1计数器
sum1 = 0
j = 2
while j <=100:
    sum1 = sum1 + j
    j = j + 2
print(f'1到100偶数的累加是{sum1}')
# while 应用,1到100偶数的累加,方法2取余
sum2 = 0
k = 0
while k <= 100:
    if k % 2 == 0:   # 取余为0的就是偶数
        sum2 = sum2 + k
    k = k + 1
print(f'1到100偶数的累加是{sum2}')

复杂实例:

'''
  套用循环的猜拳游戏
'''
import random
i = int(input('开始游戏吗?---提示:1--开始游戏,0--结束游戏:'))
if i == 1:
    while i == 1:
        print('提示:0--石头,1--剪刀,2--布')
        player = int(input('请出拳:'))
        computer = random.randint(0, 2)  # 用随机数代替电脑出拳
        # 玩家赢的情况
        if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
            print('玩家赢了,哈哈')
        elif player == computer:
            print('是平局,再来一局')
        else:
            print('电脑赢了,真遗憾!')
        i = int(input('要继续玩吗?1--继续玩,0--结束游戏:'))
    print('游戏结束!')
else :
    print('结束游戏!')

循环中的break 和 continue

break 终止此循环(满足条件下)
continue 退出当前此次循环而执行下一次循环(满足条件下)说明将使用if语句

break实例

# break 吃苹果实例,吃到第4个吃不下了,就不吃了
l = 1
while l <= 5:
    print(f'吃了第{l}个苹果')
    if l == 4:
        print(f'吃饱了,不吃了')
        break
    l = l + 1
    

continue实例

# continue 吃苹果实例,吃到第4个苹果,吃出来虫子,继续吃下一个
h = 1
while h <= 5:
    if h == 4:
        print(f'这个苹果有虫子,不吃这个')
        h = h + 1  # 这个是关键,必须先调整计数器,不然会陷入死循环
        continue

    print(f'吃了第{h}个苹果')
    h = h + 1

while的嵌套循环

语法:

while 条件1:
     条件1成立执行的代码
     
     while 条件2:
          条件2成立执行的代码

所谓循环嵌套,就是一个循环里面再嵌套一个循环,条件成立时,先执行最内层的循环,执行完毕后,再执行外层的,以此类推

实例:每天说5次媳妇我错了,刷一次碗,连续三天

m = 0
while m < 3:
    n = 0  # 内层的计数器必须在内层定义
    while n < 5:
        print('媳妇我错了!')
        n = n + 1
    print('去刷碗去!')
    print('今天的惩罚可以了')
    m = m + 1

实例1:

# 打印一个5*5的星星矩形
m = 0
while m < 5:
    n = 0
    while n < 5:
        print("*", end=" ")
        n = n + 1
    print() # 利用print的默认换行
    m = m + 1

实例2:

# 打印一个底边为5个星星的三角形
m = 0
while m < 5:
    n = 0
    while n <= m:
        print("*", end=" ")
        n = n + 1
    print() # 利用print的默认换行
    m = m + 1

实例3:

# 打印九九乘法表
m = 1
while m <= 9:
    n = 1
    while n <= m:
        print(f'{n}*{m}={n*m}', end=" ")
        n = n + 1
    print() # 利用print的默认换行
    m = m + 1

for循环

语法:

for 临时变量 in 序列:
    重复执行的代码1
    重复执行的代码2

实例1

# 快速体验for循环,打印出字符串中的所有字符

str1 = 'helloworld' 
for i in str1:  # 序列即可以是一组数组,也可以是字符串
    print(i, end=' ')

for循环中的break和continue

实例1:break

# for循环中的break
str1 = 'helloworld'
for i in str1:  # 序列即可以是一组数组,也可以是字符串
    if i == 'o':
        print('遇到o不打印,退出循环')
        break
    print(i, end=' ')

实例2:continue

# for循环中的continue
str1 = 'helloworld'
for i in str1:  # 序列即可以是一组数组,也可以是字符串
    if i == 'o':
        print('遇到o不打印')
        continue  # 不需要计数器手动+1
    print(i, end=' ')

循环和else的配合使用

else下方缩进的代码是==循环正常结束之后要执行的代码==

while……else

语法:

while 条件:
    条件成立重复执行代码
else:
    循环正常结束之后要执行的代码

实例1:

# 能正常输出5次 “媳妇儿,我错了!”再输出“媳妇儿原谅我了”
i = 0
while i < 5:
    print('媳妇儿,我错了!')
    i = i + 1
else:
    print('媳妇儿原谅我了,开心')
while……else之break

break是跳出循环,循环非正常结束,else语句将不执行

实例1:

# 输出5次 “媳妇儿,我错了!”再输出“媳妇儿原谅我了”,但第三次的时候循环中止,else不执行
i = 1
while i <= 5:
    if i == 3:
        print('这遍说的不真诚')
        break  #这里跳出循环,循环非正常结束,else将不执行
    print('媳妇儿,我错了!')
    i = i + 1
else:
    print('媳妇儿原谅我了,开心')
while……else之continue

continue只是退出当前循环,进入下一次循环,循环还是算正常结束

实例1:

# 输出5次 “媳妇儿,我错了!”再输出“媳妇儿原谅我了”,第三次不真诚但可以忍受,继续执行,循环正常结束,else语句执行
i = 1
while i <= 5:
    if i == 3:
        print('这遍说的不真诚')
        i = i + 1 #计数器必须先自增,再执行continue,不然还是会进入死循环
        continue
    print('媳妇儿,我错了!')
    i = i + 1
else:
    print('媳妇儿原谅我了,开心')
for……else语句

语法:

for 临时变量 in 序列:
    条件成立重复执行代码1
    ……
else:
    循环正常结束之后要执行的代码
直接进入for……else之break,continue

实例1:break

# for循环中的break,else语句将不执行
str1 = 'helloworld'
for i in str1:  # 序列即可以是一组数组,也可以是字符串
    if i == 'o':
        print('遇到o不打印,退出循环')
        break
    print(i, end=' ')
else:
    print('循环正常结束')

实例2:continue

# for循环中的continue,else语句还是被执行
str1 = 'helloworld'
for i in str1:  # 序列即可以是一组数组,也可以是字符串
    if i == 'o':
        print('遇到o不打印', end='\t')
        continue
    print(i, end=' ')
else:
    print('循环正常结束')

for循环进阶

for i in range ()作用:
range()是一个函数, for i in range () ==就是给 i 赋值==:

range () 函数的使用是这样的:

range(start, stop[, step]),分别是起始、终止和步长

range(3)即:从0到3,不包含3,即0,1,2

range(1,3,2)即:从1到3,每次增加2,因为1+2=3,所以输出只有1

第三个数字2是代表步长。如果不设置,就是默认步长为1

i 在for循环中的赋值范围就是 start <= i < stop, i = i + step

复杂实例:打印100以内的质数

# 打印100以内的质数
num=[]  # 定义一个装质数的列表

for i in range(2,100):   # i取值范围是:2<=i<100
   for j in range(2,i):  # j取值范围是:2<=j

你可能感兴趣的:(1-Python笔记:Python基础语法和流程控制)