python基础知识(一)---基础语法
2020-06-08 本文已影响0人
小高有点
1.python基础语法
# -*- coding:utf-8 -*-# 表示该文件支持中文
#表示单行注释
'''
批量注释(被注释的内容)
'''
Aa_1=10
1_Aa_1=5
# Python 标识符:代码中取名字的地方都是标识符 (比如 变量名 函数名字 类名字)
# python 标识符 由 大小写 字母 数字 下划线构成, 数字不能用作 开头, 比如上面的 Aa_1 就是合法的变量名 1_Aa_1=5 就是错误的变量名
#常量 变量;
print(10) # 出现在代码中 固定的数值 为常量 , 常量是要占据 单独的存储空间的,
b="Hello"
#变量: 引用一个数据时 取得名称
a=200
c=200 # Python会只存储一次 100 , 把100数值存储的 地址id 赋值给 a和b
print( id(a) ) # id() 函数的作用: 获取一个数据的 地址标识信息
print( id(c) )
# 输出的 id(a)是 等于 id(b)的
# 通过以上 两行的输出结果, 说明Python的变量 都是“引用型”变量, 变量中 存储的是 引用数据的 地址标识
# 并且 python为 同一个整数常量 安排 唯一一个存储空间
2.python的基础数据类型
# Python的常量数据 是 区分类型的 , 变量不 区分类型
# 简单数据类型 包括: 数值型( 整数int 小数float 布尔bool), 字符串型 str
# type()函数 可以得到 具体数据的 类型
print( type(100) )
print( type("100") )
print( type(3.14) )
print( type(True) )
#【课堂练习】 数据类型转换, 例: int()转成整型函数 int( "100" )
# float() bool() str()
# 原始数据: 整数内容字符串 小数内容的字符 字符型字符串 整数 小数 bool
# "100" "3.14" "hello" 100 3.5 True
#目标类型
# str NA NA NA √ √ √
# int ✔ ✘ ✘ NA √ √
# float √ V × √ NA √
# bool √ √ √ √ √ NA
print( int(3.5) )
3.运输符表达式
1)算术
按优先级 分以下3类运输符
# 1) **
# 2) * / (普通除法) // (整除) %(取余数 求模运算 mod)
# 3) + -
print( 1+2*3**2)
print (3/2, 3//2, 1%3)
2)关系运算,让计算机 判断数值大小的关系假设是否成立,运算后的输出数据为bool型
# == (恒等判断) !=(不等判断) > < >= <=
a=10
b=20
b1 = a==b
print(b1, a!=b, a>b, a<b, a>=b, a<=b)
3) 逻辑运算
# and ornot
# 参与运算的数据 和运算结果 都是 bool型 数据
c=15
res= c>a and c<b
print(res)
print(True and True)
print(True and False)
print(True or False)
print(False or False)
print( not False)
4) 位运算
# 4.1) 位移运算 >> << ,注意:位移运算只对int型数据进行
print(8>>2)
print(7<<2)
# 等效 的 算术计算是: 一个整数乘以2的n次方,n可以为正 或 负,>> 右位移相当于 整除2的次数<<左位移 相当于 乘以2的次数
# 4.2) 位逻辑运算
print(3&2) # 按位 逻辑与运算 1 对应True 0对应 FALSE; 3(二进制11) 2(二进制10), 对应位相与 结果为二进制10==>等于十进制2
print(3|2) # 按位逻辑或运算
print(3^2) # 按位逻辑异或与运算,异或: 相同 则为假相异则为真
print(~1) # 按位取反运算,等效于,一个整数在 0 和-1 之间 为对称轴 对称的那个数
4.程序流程控制
1)选择结构
#补充 input() 函数. 为运行中的程序提供输入数据。所以当代码执行到 input()函数时, 程序会暂停下来 等待用户输入
a=input('请输入第一个数:')# input函数的 参数 是 输入提示语句
a2=float(a)
a=input('请输入第二个数:')
a3=float(a)
if (a2 > a3) :
print(a2)
elif (a2 < a3):
print(a3)
else:
print('a2=a3')
【课后练习】
# 计算体质指数 BMI
BMI(体质指数)=体重(公斤)/身高(米)/身高(米)
18.5 - 22.9 正常
23 - 24.9 过重
25 - 39.9 肥胖
> 30 非常肥胖
h=float( input('请输入身高:(m)'))
w=float( input('请输入体重:(kg)'))
bmi=w/h**2
if bmi <=18.5:
print('过轻')
elif bmi <= 25 :
print("正常")
elif bmi <= 28 :
print("过重")
elif bmi <= 32:
print("肥胖")
else:
print("非常肥胖")
2)循环结构 --- while
# 基本语法格式:
# while (执行结果为True或False的 代码) :
# 缩进 循环代码
# 循环控制基本模式————构造4个要素: 1.循环初始条件, 2循环判断 3循环体 4步进
[1]计数式循环
【练习】 输入5次成绩 统计总分 评价分
sum = 0 # 设置 累积分数的变量
a = 1 # (1)循环初始条件,
while a <= 5 : # 2循环判断(也可理解为循环结束条件 )
i = float(input('请输入一个分数:'))
sum = sum + i
a = a+1# 4步进
print('总分是', sum,' 评价分是',sum/5)
# 修改为 统计的分数 个数 由程序启动后 输入
c=int(input('请输入要统计的分数 个数:'))
sum = 0 # 设置 累积分数的变量
a = 1 # (1)循环初始条件,
while (a <= c) : # 2循环判断(也可理解为循环结束条件 )
i = float(input('请输入一个分数:'))
sum = sum + i
a = a+1
avg=sum/c # 得到 平均分
print('总分是', sum,' 评价分是', "%.2f" %avg) # 字符串 格式控制语法" %.2f %d %s" %(3.1415,100,"abc")
# s1 = "----%.3f---%d----%s--" %(3.1415, 2, "abc") # 构造一个 满足特点格式 的字符串, 并赋值给 s1变量
# print( s1 )
[2]标记式循环
c=0 # 读输入的有效分数 计数
s = 0 # 设置 累积分数的变量
i=float(input('请输入一个有效分数[0~100],无效分数表示程序结束'))
while ( 0 <= i <= 100 ) : # 2循环判断(也可理解为循环结束条件 )
s = s + i # 循环体
c = c+1# 循环体
i = float(input('请输入一个分数[0~100],无效分数表示程序结束')) # 步进,(将循环 向下一个周期推进)
if c>0:
print('总分是', s,' 平均分是', "%.2f" %(s/c) ) # 字符串 格式控制语法" %.2f %d %s" %(3.1415,100,"abc")
else:
print("无有效分数")
[3]循环结构 的else分支:
# while 条件表达式:
#循环体代码
# else:
#循环条件表达式 没有符合条件时( 即循环正常退出时) 执行的语句块
# 注意: 如果循环体中 遇到break 而退出, 则else分支 也会被跳过
【练习】输入某一个正整数 编程判断是否是 “质数”(或称 素数)
n = int(input('请输入一个正整数'))
a = 2
while a < n : # 判断条件 所允许的 循环范围是 [2~n-1]
if n % a == 0: # 求余数 为0 说明能被整除
print(n, '不是质数')
break # 直接 结束循环结构, 包括循环结构的 else分支 也被忽略
a = a + 1 # 尝试 除以下一个数
else:
print(n, "是质数")
print('while之后的语句')
# ####### 不使用循环 else分支 的实现方式
flag=True
n=int(input('请输入一个正整数'))
a=2
while a<n :
if n%a==0: # 求余数 为0 说明能被整除
print(n,'不是质数')
flag=False
break
a=a+1
if flag:
print(n,"是质数")
[4]循环结构 嵌套循环结构
# 理解方法: 可以想象在 遍历 一张二维的表
b=1
while b<=10:
a=1
while a<=10:
print(a,end=' ')
a=a+1
print() # 为换行 输出空的内容
b=b+1
【练习】 找出 100~300之间的 所有质数 ,并计算有多少个质数
c=0
n=100
while n <=300:
a = 2
while a < n : # 判断条件 所允许的 循环范围是 [2~n-1]
if n % a == 0: # 求余数 为0 说明能被整除
# print(n, '不是质数')
break # 直接 结束循环结构, 包括循环结构的 else分支 也被忽略
a = a + 1 # 尝试 除以下一个数
else:
print(n, "是质数")
c = c+1
n = n+1
print("总共找%d到 个质数" %(c) )
[5]For 循环
# 格式
# for 迭代变量 in (数据范围):
# 循环表达式(可以使用迭代变量 代表数据范围内的一个数 )
for a in (1, 1.5, True, "abc"):
print(a,end=' ') # 这句 体现了 “迭代”
print("hello")# 这句体现了 “重复”
for a in range(10,0,-1):
if a==5:
#continue # 跳过本次循环 未执行的部分, 进入下一次判断
break
print(a,end=' ') # 这句 体现了 “迭代”
print("hello")# 这句体现了 “重复”
else:
print('for循环正常结束时 执行')
def add(a,b):
pass # 占位符, 表示 语法结构 已经完成
【程序流程控制 练习】
# 1.计算n!,其中n由键盘输入。
n=int(input('输入一个正整数:'))
s=1
for a in range(1,n+1):
s=s*a
print(n,"的阶乘是:",s)
# 练习2: 求s=1!+2!+3!+…+10!
n=int(input('输入一个正整数:'))
s=1
s1=0
for a in range(1,n+1):
s=s*a
s1=s1+s
print(n,"以内的阶乘 求和是:",s1)
#练习3:有一张厚度为0.1毫米的纸,假设它足够大,重复将其对折,问对折多少次之后,其厚度可以抵达(再对折一次就超过)珠穆朗玛峰的高度?
c=0
a=0.1 # 0.1毫米
a=a*2
while a <= 8848000:
c=c+1
a=a*2
print('对折次数为',c,'最接近的厚度是',a/2000)
#练习: 输出 99乘法表
for b in range(1,10):
for a in range(1,b+1):
s="%dX%d=%d" %(a,b,a*b)
print(s,end='\t')
print() #换行