python人工智能-python基础1(基本语法:变量、数据类型、输入输出、运算符、条件语句)

python入门

高级语言–>机器语言

  1. 编译(c/c++):在执行之前会通过编译器执行编译过程
  • 效率一遍比解释性语言较高
  1. 解释(python):在程序运行时,通过解释器,一边运行一边解释
  • 通过解释器优化,效率可提高,或超过编译性语言

注:java是一种先编译后解释的语言
gui编程:graphical user interface 图形用户界面:采用图形方式显示的一种信息交换媒介

基本语法

注释

  • 解释器不执行注释内容
  1. 单行注释:#
  2. 多行注释:(块注释)
"""
	注释1
	注释2
	...
"""
'''
	注释1
	注释2
	...
'''
  1. 快捷键:ctrl +/ (将选中的行都已#注释掉) 再按ctrl+/取消

缩进

"""
同一逻辑下面的语句具有相同的缩进
"""
if a < b
	a = b
	print(a)

变量

变量名= 值
命名:

  • 大驼峰 :每个单词首字母大写
  • 小驼峰:第二个及以后的每个单词手写大写
  • 下划线
  • 变量名:满足标识符规则即可
+ 的使用

1.可以使用+字符将变量与另一个变量相加

x = "helllo"
y = "world"
print ("output is "+ x + y)

2.对于数字,+字符用作数学运算符

print(1+5)  #6
global关键字

1.在函数内部创建全局变量时,使用global关键字
2.如果要在函数内部更改全局变量的值,使用global关键字引用该关键字

变量的赋值

  • python中的变量赋值不需要类型声明(同shell脚本编程)
  • <变量名> = <变量值>
  • 允许为多个变量赋值
a = b = c =1 
  • 可以为多个变量同时指定变量值
a,b,c = 1,2.2,"sunshine"
  • 变量更像是附在对象上的标签
# a == 标签  依赖于具体的空间
a = 100
a = 'strings'
b = 200
print(id(b))
b = 200
print(id(b))

a = 200
print(id(a))
a = 100
print(id(a))

result:
140720874558752
140720874558752
140720874558752 #不同变量的值相同,则都指向同一地址空间
140720874555552 #同一变量的不同值,指向不同的地址空间

数据类型

  1. 数值型(int 、float)
  2. 布尔型(True、False)
  3. 字符串(str)
  4. 列表(list)
  5. 元组(tuple)
  6. 集合(set)
  7. 字典(dict)
5个标准的数据类型
1. Number(数字类型):用于存储数值
  • int : 是一个一个动态增长的类型,理论上可以无限增大
a = 0b10000 #二进制用0b表示
b = 0o23 #八进制用0o表示
c = 18 #十进制直接写
d = 0x12 #十六进制用0x表示
  • float :类似于c的double
  • conplex(复数):由实数部分和叙述部分组成
c = 1.0 + 2.3j #复数
数据类型强转—数字型
  • 只需将数据类型作为函数名即可。如:
complex(x) #将x转换到一个复数,实数部分为x,虚数部分为0
complex(x,y) #将x和y转换到一个复数,x为实数部分,y为虚数部分
  • 数学函数
abs()、 log() 、min()、....#同Matlab
  • 随机数
choice(seq) : 从序列的元素中随机挑选一个元素,比如:
random.choice(10) #从0~9中随机挑选一个整数

randrange([start,]stop[,step]) : 从指定范围,按指定基数递增的集合中获取一个随机数, 计数值默认为1

seed([x]):改变随机数生成器的种子,不指定时,python会自动选择seed

shuffle(lst):将序列的所有元素随机排序

uniform(x,y):随机生成一个浮点数,范围在[x,y]randint(x,y):随机生成一个整数,它在[x,y]范围内
import random #加载random库
a = random.randint(1,5)
print(a)
2. String/bytes(字符串):是由数字、字母、下划线组成的遗传字符串,使用单引号或者双引号标

python语言由两种不同的字符串

  • string:存储文本 ,文本字符串内部使用unicode存储,范围更加广,利于操作
  • bytes :存储原始字节,字节字符串存储原始字节并显示ASCLL(0~255)
    正常情况下,实例化一个字符串会得到一个str实例,如果希望得到byte实例,需要在文本前添加b字符 利于传输 字符串崩由中文,只能是ascll码的字母
text_str = "this is str" #str
byte_str = b"this is bytes"#bytes
1. string--->bytes 用encode()  便于传输

mystr = "我们"
print(mystr)
print(type(mystr))

mybytes = mystr.encode()#默认编码格式unicode
print(mybytes)
print(type(mybytes))

mybytes1 = mystr.encode("utf-8")#指定编码格式
print(mybytes)
print(type(mybytes))

result:
我们
<class 'str'>
b'\xe6\x88\x91\xe4\xbb\xac'
<class 'bytes'>
b'\xe6\x88\x91\xe4\xbb\xac'
<class 'bytes'>
bytes---->string用decode()便于操作
mybytes1 = b"hello world"
print(mybytes1)
print(type(mybytes1))
mystr1= mybytes1.decode("utf-8")
print(mystr1)
print(type(mystr1))

result:
b'hello world'
<class 'bytes'>
hello world
<class 'str'>
  • 下标
    如:str = “abcdef”
str = "abcdef"
print(str[0])  #a
print(str[1])  #b
print(str[2])  #c
...
print(str[5])  #f
  • 切片:截取操作对象其中的一部分
    语法:[起始:结束:步长] 特点左闭右开
print(str[0:3])  #abc   str[:3]
print(4:)  #ef
print(1:-1)  #bcde
print(str[-1])  #f 最后一个元素
  • 查早字符串中某个字符对应的索引 find()/rfind()
str = "1234567891"
a = str.find("4")  #4  find()从前往后找
b = str.rfind("1") #-1  refind()从后往前找
  • 字符串函数
len:返回字符串的长度
find:检测一个字符串是否包含在另一个字符串中,如果是返回开始的索引值,否则返回-1
index:同find但是未检测到包含现象时会包异常
count:返回字符串在start和end之间在另一个字符串中出现的次数
replace:字符串替换
3. List(列表):有序的对象集合,通过偏移来取值
  • 自定义格式:
列表名字 = [元素1,原素2...];元素可以是字符、字符串、数字、列表等
  • 元素获取:通过下标
mylist = [1,2.2,"hi",[22,33,44,"hello world"]]
print(mylist[0])
print(mylist[1])
print(mylist[2])
print(mylist[3])

print(mylist[3][2:5])

result:
1
2.2
hi
[22, 33, 44, 'hello world']
[44, 'hello world']
  • 其他操作:
mylist = [1,2.2,"hi",[22,33,44,"hello world"]]
#在末尾追加
print(mylist+[55,66,["ni hao"]])#将各个元素都追加到原来的列表
mylist.append([55,66,["ni hao"]])#作为一个整体元素,追加到原来的列表
print(mylist)

result:
[1, 2.2, 'hi', [22, 33, 44, 'hello world'], 55, 66, ['ni hao']]
[1, 2.2, 'hi', [22, 33, 44, 'hello world'], [55, 66, ['ni hao']]]

在这里插入图片描述在这里插入图片描述
可修改

4. Tuple(元组):类似于List(列表),用“()”标识,只读,不可变

不可修改

5. dictionary(字典):字典是无序的对象集合,由索引(key)和它对应的值value组成。用“{}”标识,通过键取值
  • key可以是数字类型或者字符串类型;value的数据类型不限
  • 有2种赋值方式:
mydit = {"name":"sunshine","age":18}#key:value
print(mydit)
mydit["name"] = "sunny" #通过key值修改value
print(mydit)

result:
{'name': 'sunshine', 'age': 18}
{'name': 'sunny', 'age': 18}

可修改

指定变量类型 Casting
  • 面向对象的语言,使用类来定义数据类型
  • 变量的数据类型——构造函数
  • 使用构造函数完成数据类型的转换

输入输出

输入 input

原型:

input([prompt])
>prompt:提示信息
>>>num = input("请输入数据:")
print(type(num))

num1 = int (num)+333
print(num1)

在这里插入图片描述input接收任意性输入,将所有输入默认为字符串处理,并返回字符串类型,如需使用其他类型,需要自己显示做类型转换

在这里插入图片描述

input()接收用户输入的数据都是字符串类型

  • 转换数据类型 函数 :类型(转换对象)
输出 print

原型:

print(*values,sep=' ',end='\n',file=sys.stdout,flush=False)
>values:表示要打印的值,各个值之间用‘,’(逗号),打印出来的各个值之间用空格隔开
>>>print('a','b','c')
a b c
>sep:表示当输出多个打印的值时,各个值之间分割方式,默认空格间隔,可以自定义
>end:控制print中传入值输出后的结束符号,默认换行,可以自设置,入“\t”、“ ”等
>file:设置输出对象,即把print中的值打印到什么地方,默认输出到终端,可以设置file=存储文件
>flush:该参数主要时刷新,默认False,关闭再刷新,Ture为实时刷新
h = 13
m = 20
s = 9
print(h,m,s,sep=":",end="\n")
print(h,':',m,":",s)

#今天时间是13209,天气不错
print("今天时间是(",h,m,s,"),天气不错")
print("今天时间是(%d:%d:%d),天气不错"%(h,m,s))

name = "小明"
age = 18

print("%s,年龄%d"%(name,age))
print('{},年龄{}'.format(name,age))
#重复输出
print("{},年龄是{},{},爱好听歌".format(name,age,name))
print("{0},年龄是{1},{0},爱好是听歌".format(name,age))


```result```
13:20:9
13 : 20 : 9
今天时间是( 13 20 9 ),天气不错
今天时间是(13:20:9),天气不错
小明,年龄18
小明,年龄18
小明,年龄是18,小明,爱好听歌
小明,年龄是18,小明,爱好是听歌
  • print(’’)默认会换行输出 等效于下面这个
  • print(’’,end="\n")
    1.格式化输出 :同c/c++ %c、%d、%s… 也可全部由%s代替,执行时会自动匹配相应类型
    2.内置函数format() :字符串格式化
    格式:str.format(),参数个数不限
    3.转义字符
    1)\n\t:同c/c++

运算符

算术运算符

//:整除
*:乘--------------**:指数(2**3= 8)(优先级次于()小括号)

赋值运算符

1.单个变量赋值
2.多个变量赋值
number,float1,float2,str = 1,11.22,22.3,'strings'
3.多变量赋相同值
a = b = c =666

复合、比较运算符(类似)
逻辑运算符

andornot

  • 特殊:数字之间的逻辑运算
  • and运算符,只要有一个值为0,则结果为0,否则结果为最后一个非0数字
  • or运算符,只有所有值为0结果才为0,否则结果为第一个非0数字

条件语句

  1. 逻辑判断
if a > b:
	xxxxx
elif a < b:
	xxxxxx
else:
	xxxxxx
  1. 循环
while a > b
	xxxxxx
	break
for i in data:#将data里面的值一个一个的取出来,赋值给i,相当于字符串和数组的遍历
	print(i)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值