zl程序教程

您现在的位置是:首页 >  Python

当前栏目

「Python」语言元素、分支结构和循环结构

2023-03-20 14:54:23 时间

Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! CSDN@AXYZdong,CSDN首发,AXYZdong原创 唯一博客更新的地址为:AXYZdong的博客 B站主页为:AXYZdong的个人主页

文章目录

语言元素

指令和程序

计算机的硬件系统通常由五大部分构成:运算器、控制器、存储器、输入设备和输出设备。

运算器和控制器的结合:中央处理器。执行各种运算和控制指令以及处理计算机软件中的数据。

指令的结合:程序。

常用数据类型

  • 整形:python中可以处理任意大小的整数(python 3中只有 int 这一种)
  • 浮点型:浮点数也就是小数
  • 字符串型:以单引号或双引号括起来的任意文本。‘hello’ 和 “hello”
  • 布尔型:只有 True 和 False 两种

变量命名

  • 变量名由字母、数字和下划线构成,数字不能开头
  • 大小写敏感(大小写表示不同的变量)
  • 不要和关键词和系统保留字冲突

变量的使用

python中可以使用 type 函数对变量的类别进行检查。

a=100

print(type(a)) # <class 'int'>

可以使用python中内置的函数对变量类型进行转换。

  • int():将一个【数值或字符串】转换成【整数】
  • float():将一个【字符串】 转换成【浮点数】
  • str():将【指定的对象】转换成【字符串】
  • chr():将【整数】转换成【该编码对应的字符串(一个字符)】
  • ord():将【字符串(一个字符)】转换成【对应的编码(整数)】

chr()ord() 互为逆操作。

a=1
b=2
print('%d + %d = %d' % (a,b,a+b))  #1 + 2 = 3

%d 为整数占位符,%f 为小数占位符,字符串之后的 % 后面跟着的变量值会替换掉占位符然后输出到终端。

运算符

  • 算数运算符:** % // / * - +
  • 赋值运算符:= += -= *= /= //=
  • 比较运算符:> < >= <= == !=
  • 逻辑运算符:and or not
  • 位运算符:& | ~ ^ >> <<

运算符优先级 :单目运算符(~ + -)> 算术运算符 > 位运算符 > 比较运算符。有小括号的,小括号优先。

运算符

描述

[] [:]

下标、切片

**

指数

~ + -

按位取反、正好、负号

* / % //

乘、除法(结果为浮点类型)、取余数、整除/商数取整

+ -

加、减

>> <<

右移、左移

&

按位与

^ |

按位异或、按位或

<= < > >=

小于等于、小于、大于、大于等于

== !=

等于、不等于

is is not

身份运算符

in not in

成员运算符

not or and

逻辑运算符

分支结构

一条语句一条语句顺序执行:顺序结构

分支结构 (选择结构)

python中构造分支结构的关键字:ifelseelif

'''
判断输入的边长能否构成三角形,如果能则计算三角形的周长和面积
Author:AXYZdong 
'''
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
if a+b > c and a +c > b and b+c >a :
    print('周长 = %f' % (a+b+c))
    p = (a+b+c)/2
    area = (p*(p-a)*(p-b)*(p-c))**0.5
    print('面积 = %f' % (area))
else:
    print('不能构成三角形')

循环结构

for-in 循环

明确知道 循环执行的次数 或者 要对一个容器进行迭代,推荐使用 for-in 循环。

例:计算1~100求和的结果

sum limits_{n=1}^{100}n
'''
1~100求和
Author:AXYZdong 
'''
sum = 0
for x in range(101):  # for x in range(1,101):
    sum = sum + x
print(sum)
  • range(101):产生0~100范围内的整数,取不到101。
  • range(1,101):产生1~100范围内的整数,相当于 [1,101)
  • range(1,101,2):产生1~100范围内的奇数,其中2是步长,每次递增
  • range(100,0,-2):产生100~1范围内的偶数,其中-2是步长,每次递减

1~100范围内偶数求和?

'''
用for循环实现1~100范围内偶数求和
Author:AXYZdong 
'''
sum = 0
for x in range(2,101,2):  # for x in range(100,0,-2):
    sum = sum + x
print(sum)

range(2,101,2):从2开始以每次2的步长递增,产生2~100的范围(均为偶数)

while 循环

不知道具体循环次数的循环结构,推荐使用 while 循环。while 循环通过一个能够产生或转换出 bool 值的表达式来控制循环,表达式的值为 True 则继续循环;表达式为 False 则结束循环。

'''
猜数字游戏
Author:AXYZdong 
'''
import random

ans = random.randint (1,10)
counter = 0
while True:
    counter += 1
    num = int(input('请输入:'))
    if num > ans:
        print('大一点')
    elif num < ans:
        print('小一点')
    else:
        print('恭喜你猜对了')
        break
print('你一共猜了%d次'% (counter))
if counter > 5:
    print('你运气太差了')

random.randint(参数1,参数2)

  • 参数1、参数2必须是整数
  • 函数返回值为参数1和参数2之间的任意数,闭区间 [参数1,参数2](python 3环境中已验证)

例:输入两个正整数,计算它们的最大公约数和最小公倍数

最大公因数:两个数公共因子中最大的那个数 最小公倍数:两个自然数的积除以它们的最大公因数

'''
输入两个正整数,求它们的最大公约数和最小公倍数
Author:AXYZdong
'''
x = int(input('x = '))
y = int(input('y = '))
if x > y:
    x,y = y,x
for common in range(x,0,-1):
    if x%common == 0 and y%common == 0:
        print('%d和%d最大公约数是%d' % (x,y,common))
        print('%d和%d最小公倍数是%d' % (x,y,(x*y//common)) ) #两个自然数的积等于这两个数最大公因数乘以它们的最小公倍数
        break

参考文献

[1]:https://github.com/jackfrued/Python-100-Days [2]:Python编程快速上手:让繁琐工作自动化/ (美)斯维加特(A1 Sweigart) 著;王海鹏译.北京:人民邮电出版社,2016.7