python基础知识

python基础知识小结

本文主要包括:

  • 注释
  • 变量
  • 数据类型
  • 运算符
  • 输入输出
  • 分支、循环
  • 代码示例
python注释

注释,即一段文字性的描述,格式为:

  • # 内容,注释一行;
  • '''内容 ''',注释多行;
  • 文件头加:# ! /usr/bin/env python 语句,指定编译器路径,使得./* .py命令正确执行。

注释的应用场景:

  • 厘清代码逻辑;
  • 添加注释,减少合作者的沟通成本;
  • 可用于调试;

python中文乱码

乱码产生原因:字符编码使用标准不一;

python变量

变量是一个存储数据的容器,变量引用着某个具体的数值且可改变。

定义变量的三种方式:

  1. 变量名 = 值;

  2. 变量名1,变量名字2 = 值1,值2;

  3. a = b = 3;

看代码:

//
a=2
print(a) //输出为 2
//
a,b=2,3
print(a,b)//输出为 2 3

//
a=b=3
print(a,b) //输出为3 3 

Tips:

  • 选中代码 -> ctrl +/ ,快捷注释;
  • ctrl + r ,替换;

Note:

  • 一个变量只能引用一个数值;
  • 变量命名规范:字母数字下划线,驼峰命名,区分大小写;、
  • 变量名使用前必须赋值;
  • 变量名不能与关键字同;

python数据类型

数据类型,对程序处理的数据进行分类。

常用的数据类型:

  • Number 数值类型;
  • Bool 布尔类型
  • String 字符串
  • List 列表
  • Set 集合
  • Tuple 元组
  • Dictory 字典
  • NoneType 空类型

使用type()判断一个数据的类型:

result=type("6")
print(result)

# 输出 <class 'int'>

python语言是强类型语言,不支持不同类型值得操作。

一段类型转换代码:

num="6"
print(4 + int(num))
# 字符型转int型,输出 10

print(str(4) + num)
#输出字符型46

score=input()
print(score + 6)
# error,input输入后得数据是字符串类型
print(type(score))

Note:

  • 不是所有的数据类型都能互相转换;

补充:

先看一组概念,

  • 静态类型:类型是编译的时候确定的,后期无法修改;
  • 动态类型:类型是运行时进行判定的,可以动态修改;

再看一组概念:

  • 强类型:不轻易随着环境的变化而变化;
  • 弱类型:容易改变;

所以,python是强类型的,动态类型的语言。

python 运算符

算术运算符中,需要注意的点:

  • / 除法;
  • // 整除;
  • % 取余;
  • ** 取幂;

复合运算符,有:+=-=*=%=**=//=

比较运算符,如><>!===is、链式比较运算符5 < num <10,比较运算符的结果是Bool类型。

看一段代码:

a=10
b=10
print id(a),id(b)
#输出相同的地址内容
print a is b
# True,因为指向相同的内存

a=[1];
b=[1];
print a==b  
# True 值相同
print a is b
# False 指向不同

逻辑运算符

  • not 取反,示例:b=False print(not b)
  • and 一假全假
  • or 一真全真
python 输入输出

处理数据的程序,数据输入有:

  • 程序内部写死的;
  • 从文件里面读取;
  • 网络服务器进行获取;
  • 接受用户的输入;

程序处理完数据后,数据输出有:

  • 写回文件保存;
  • 发送回服务器;
  • 打印到控制台,并展示。

函数eval(content)content当作代码使用,看代码:

content=input("请输入内容:")
print(type(content))
print(content)
​```
输入 1+1
输出 str  1+1
​```

content=input("请输入内容:")
result=eval(content)
# 将用户输入的内容当作代码处理
print(type(result))
print(result)
​```
输入  1+1
输出  int  
​```

输出函数print(values,sep,end,file,flash),其中,

values是需要输出的值,多个值使用,分割;

sep是分割符,当输出多个值时,使用该分割符号进行分割;

end默认是换行符号\n,以该字符结束;

file是输出的目标,默认是控制台;

flash表示立即输出,为bool类型。

基于python2的输出,看代码:

#  _*_coding:utf-8 _*_

# 输出一个值
num=10
print num

# 多个变量
num1=11
print num,num1

# 格式化输出
name=na
age=10
print "名字%s,年龄是%d"%(name,age)

print "名字{0},年龄是{1}".format(name,age)

newStr="名字%s,年龄是%d"%(name,age)  
print newStr 
# 以上3种方式,效果相同


#输出到文件
f=open("test.txt","w")
print >> f "输出到文件中的内容"

# 输出内容,使用特定分割符
print "-".join(["a","b","c"])
# 输出为 a-b-c

基于python3的输出示例代码:

# 输出多个变量
num=10
print(num)
num1=11
print(num,num1)

#格式化输出
name=na
age=10
print("名字%s,年龄是%d" %(name,age))
print("名字{0},年龄是{1}".format(name,age))
#format是字符串的一个方法

# 输出到文件
f=open("text.txt","w")
print("输出到文件的内容",file=f)
# 或者头文件加 import sys 则:
print("输出到文件的内容",file=sys.stdout) 
# 两者效果相同


# 输出但不自动换行
print("abc",end="")

# 指定分割符
print("1","2",sep="*")

# 休眠x秒,头文件加:from time import sleep 
sleep(5)

格式化输出的一点补充:

看代码:

math=59
print("%d" %math)
#59

print("%5d" %math)
#    59  右对齐,5位
print("%-5d" %math)
#59      左对齐,5位
print("% d" %math)
# 59 左边一个空格

#小数点精度
math=59.9
print("%f" %math)
# 59.900000  
print("%.2f"%math)
# 59.90

常用的typecode类型

typecode效果
d将整数、浮点数转换成十进制表示
o将整数、浮点数转换成八进制表示
x将整数、浮点数转换成十六进制表示
e将整数、浮点数转换成转换成科学计数法表示
f转换成浮点数表示
g将整数、浮点数转换成转换成科学计数法表示,但会自动调整。
s打印字符串
r
c将数字转换成unicode下对应的值,反之相同。如print("%c" %97),输出a

python中不存在将整数转化为二进制的格式符,即不存在%b

python 示例

描述:采集一个人身高、体重、年龄、性别的信息,计算出体脂率。公式供参考:


B M I = 体 重 ( k g ) / 身 高 ( 米 ) 2 体 脂 率 = 1.2 ∗ B M I + 0.23 ∗ 年 龄 − 5.4 − 10.8 ∗ 性 别 ( 男 : 1 , 女 : 0 ) 百 分 比 : 男 性 , 15 ∼ 18 ; 女 性 , 25 ∼ 28 BMI =体重(kg)/身高(米)^{2} \\ 体脂率=1.2*BMI +0.23*年龄-5.4-10.8*性别(男:1,女:0)\\ 百分比:{男性,15{\sim}18;女性,25{\sim}28}\\ BMI=(kg)/()2=1.2BMI+0.235.410.8(1,0)1518;2528


要点:注释、输入输出、变量使用、运算符使用、数据类型转换。

功能分析:

  • 输入:身高、体重、年龄、性别;
  • 处理:计算体脂率、判断是否处于标准水平;
  • 输出:输出体脂率,判断是否合格;

看代码:

# 输入:身高、体重、年龄、性别;
personHeight=input("输入身高(m):")
personHeight=float(personHeight)
personWeight=input("输入体重(kg):")
personWeight=float(personWeight)
personAge=input("输入年龄:")
personAge=int(personAge)
personSex=input("输入性别(男:1,女:0):")
personSex=int(personSex)

# 处理:计算体脂率、判断是否处于标准水平;
BMI=personWeight/(personHeight*personHeight)
# input接收到字符串,此处需要转类型
TZL=1.2*BMI +0.23*personAge-5.4-10.8*personSex
minNum=0.15+0.10+(1-personSex)
maxNum=0.18+0.10+(1-personSex)
result=minNum<TZL<maxNum

# 输出:输出体脂率,合格否;
print("合格标准?" result)
分支和循环

python分支的语法:

if 条件:
	代码块一
elif 条件:
	代码块二
else 
	代码块三

使用示例:

# 输入:身高、体重、年龄、性别;
personHeight=input("输入身高(m):")
personHeight=float(personHeight)
personWeight=input("输入体重(kg):")
personWeight=float(personWeight)
personAge=input("输入年龄:")
personAge=int(personAge)
personSex=input("输入性别(男:1,女:0):")
personSex=int(personSex)
if not(0<personHeight<3 and 
       0<personWeight<300 and 
       0<personAge<150 and 
       (personSex==0 or personSex==1)):
    print("数据输入有误")
    exit()
# 处理:计算体脂率、判断是否处于标准水平;
BMI=personWeight/(personHeight*personHeight)
# input接收到字符串,此处需要转类型
TZL=1.2*BMI +0.23*personAge-5.4-10.8*personSex
if(personSex==1):
    result=0.15 < TZL < 0.18
else:
	result=0.25 < TZL < 0.28
# 输出:输出体脂率,合格否;
if result:
    notice="标准"
else:
    notice="不标准"
print(notice)

Note:依靠缩进判断ifelse配对问题。

python循环语法有2种:

  • while 循环;
  • for 循环,用来遍历集合。

使用示例:

num=0
sum=0
while num<10:
	sum+=num
    ++num
print(sum,num)


# while + else
num=0
while num<10:
	num+=1
    print("num:",num)
else:
    print("执行完毕,num:",num)

Note:python中没有do...while(),一定要有循环结束条件。

for循环语法:for x in xxx:使用实例:

notice="hello world"
for c in notice:
    print(c)
    
pets=["xiaohau","xiaohuang","xiaolan"]
for name in pets:
    print(name)
    
# for + else 
notice="hello world"
for c in notice:
    print(c)  
    # break 则直接跳出,不会经过else
else:
    print("遍历结束")

    

反转字符串:

# 反转字符串    
notice="待反转字符串"
result=""
for c in notice:
    result+=c
print(result)

打印1~100之间的偶数:

for i in range(1,101):
	if i%2==0:
    	print(i)

循环中使用breakcontinue,示例:

for i in range(1,11):
    if i==6:
        break
    print(i)
# 1 2 3 4 5
for i in range(1,11):
    if i==6:
        continue
    print(i)
# 1 2 3 4 5 7 8 9 10 

循环分支嵌套,示例:

nums=range(1,101)
for i in nums:
    for j in (1,3):
    	print(num)

# 打印9*9乘法表
for i in range(1,10):
	for j in range(1,i+1):
        print("%d * %d = %d" %(j,i,i*j),end='\t')




补充:Pass语句

pass语句是空语句,一般用作占位语句。是为了保持程序结构的完整性。

age=19
if age>18:
	pass
	# 暂时放置空语句,占个位置
elsepass

# 编译不会报错
示例
  1. 判断水仙花数。即一个3位数,如果百位的三次方 + 十位的三次方 + 个位的三次方 = 数值本身,则该数为水仙花数,如153是一个水仙花数。
num=input("输入一个三位数:")
num=int(num)
if not (100<=num<=999):
    print("无效输入")
    exit() 		# 程序结束
# 数据无误,继续执行
baiwei=num //100
shiwei=num* 100 //10
gewei=num % 10

#判断
result = ((baiwei**3 + shiwei**3 + gewei**3) == num)
if result:
    print("是")
else:
    print("否")

未完,待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值