Python学习笔记(一)基础

这篇博客是针对有一定Java基础的学习者入门Python的笔记,涵盖了Python的基础知识,包括输入输出、数据类型、格式化、List和tuple、条件判断、循环、dict和set的使用。通过实例解析了Python与Java在这些概念上的异同。

这是一篇Java学习Python的笔记,不适合小白
正常的套路应该先介绍一番Python,安装环境的啥,这里直接省略这些

输入输出 print,input

print()不解释,学过编程的都懂。
input类似于java的Scanner,从控制台得到输入的数据
用法:
name = input()

数据类型

整数、浮点数、字符串,不解释。
Python不像java定义变量需要将类型写在前面,只要直接等于即可。
这里注意字符串,java都是双引号,Python我看到的都是单引号,但是我试了下双引号也可以,可能这是种规范,所以还是用单引号吧。
那么问题来了,如果字符串里包含单引号,我们就需要转义。用到符号:\
例如:
print('I\‘m Murphy!’)

格式化

例如:
print(‘Hello, %s’ % ‘world’)
输出:Hello, world
%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

占位符替换内容
%d整数
%f浮点数
%s字符串
%x十六进制整数

如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串;
那么问题又来了,如果字符串带有%,那么就需要转义,请用%%来表示一个%;
另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦得多;
例如:print(’{0}, {1}’.format(‘Hello’, ‘Murphy’))
输出:Hello, Murphy

List和tuple

list/列表:和java类似,是一种有序的集合,可以随时添加和删除其中的元素。
使用方式:
list=[‘Hello’,‘Murphy’]
len(list) 和 Java中的 list.size()一样,得到list里元素的个数
list[index] 取值
添加元素不用add,用append在末尾添加,用insert(index,value)在指定位置添加(index下标、value要添加的元素),用pop()删除末尾,pop(index)指定位置删除

tuple/元组 :和list非常类似,但是tuple一旦初始化就不能修改。java叫数组,看到数组估计就懂了 tuple[index]取值
定义方式: a=(‘Hello’,‘Murphy’) 区别在于list用中括号
注意一点,当只有一个数字元素时: b=(1,) 加个逗号
这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义
至于多维数组,list里放list这些就不说了,和Java一样

条件判断

基本和java一样
只是java必须要有括号而Python是这样的:
a=0
if a>10 :
    print(‘111’)
elif a> 5 : //就是else if
    print(‘222’)
else:
    print(‘333’)

没有括号,但是要对齐!要对齐!要对齐!

循环

list=[1,2,3,4,5,6]
for x in list :
    print(x)
不解释,一目了然

dict和set

dict/字典/dictionary:在Java就是map
map就是使用键-值对(key-value)存值,通过key得到value

dict使用方式:

定义:a = {‘hello’:1,‘Murphy’:2} (用的是大括号)

取值
第一种:a[‘hello’] 得到 1 (用的是中括号)
第二种:a.get(‘Murphy’) 得到 2 (小括号)

  1. 如果使用第一种取值方式向一个不存在的key取值,那就报错了
    所以用这种方式前要先判断是否存在key
    用到:in
    ‘Hi’ in a 判断a字典里有没有Hi这个key,有返回true没有false
  2. 使用第二种,key不存在就会返回None

添加:a[‘nice to meet you’]=3 添加key-value对
a就变成了
a = {‘hello’:1,‘Murphy’:2,‘nice to meet you’:3}

删除:pop(key)
a.pop(‘hello’)

修改
重复向一个key里放值,他会覆盖之前存的值
a[‘Murphy’]=3
a = {‘Murphy’:3,‘nice to meet you’:3}
value可以一样

总结:

和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:

定义
b = set([1, 2, 3])

:通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
b.add(4)
b = set([1, 2, 3,4])
b.add(4)
b不变

:通过remove(key)方法可以删除元素:
b.remove(4)
b = set([1, 2, 3])

另:
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集(&)、并集(|)等操作:

s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print(s1 & s2) //输出{2, 3}
print(s1 | s2) //{1, 2, 3, 4}

如果不懂交集,并集是什么,建议您去复习复习初中数学

至于可变和不可变,涉及到堆栈之类的,反正就是可变对象可以修改最原始最初创建的那个值,而不可变对象你用了某些方法得到新的值,其实都是它重新创建了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值