被百度欺骗的日子已经过去一段时间,堕落过,迷茫过,颓废过,一振不撅过。开始新的学习了
python3环境搭建见我的另一篇博客 https://blog.csdn.net/weixin_42498050/article/details/113776362
以下为倒叙排列
python2.7和python3的区别
输入函数:2.7 row_input 和 3 input 一样
2.7的input输入什么类型找什么类型,输入数字则为数字,输入字符串则为字符串
3.0的input所有输入默认字符串。需要加int inputNum = int(input("请输入数字"))
打印 2.7 print a 3 print (a)
java python语法
1. python常量拼接变量可以用, 但打印结果多一个空格,可以String拼接int,String拼接数组。但py用+不能拼接数组。java用的+可以拼接String+int类型数据 String拼接数组用 "测试String"+ Arrays.toString(nameList))
print("guess_count==", guess_count)
或者%s %s %(变量名1,变量名2)
msg='''
信息:
name:%s
age:%s
job:%s
''' %(name,age,job)
%d 整型数字
%f 浮点
2.java布尔类型 true false 小写
python布尔类型 True False 大写
3. if else
java
if(num==1){
} else if {
}else{
}
python
if num=1:
print ("xx")
elif num=0:
print ("ss")
else
print ("yy")
4. 次方次幂 2的3次方
java Math的pow()方法返回第一个参数的第二个参数次方,格式为Math.pow(m,n),代表m的n次方
Math.pow(2, 3) 结果为8.0
python 2**3 结果为8
5. python中 ' ' 和 "" 没区别 三个'''代表注释
6. 去空格 去首位空格
java trim(); 函数内不可以传参数
System.out.println(" abc dd ".trim()); 结果为abc dd
python strip() 函数内可以传参数 默认去空格。 如 strip("A") 把首位的单个/多个A字符去掉 如print(" abc dd AAaabbb".strip("b")) 的结果为 abc dd AAaa
print(" abc dd ".strip()) 结果为abc dd
7. 数组定义
java
String[] nameList={"a","b","c"};
System.out.println(nameList[0]);
python
name_list=['a','b','c']
print(name_list[0])
print(name_list[1])
8. for循环
java
for(int i=0;i<10;i++){
}
python
for i in range(10)
9. sys.argv就是一个从程序外部获取参数的桥梁,这个“外部”很关键, 因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。 其第一个元素是程序本身,随后才依次是外部给予的参数
如
#!/usr/bin/env python
#-*-coding:utf-8-*-
import sys
a=3
print (a)
print ('你是谁')
print(sys.argv)
运行python 1.py 800结果为
3
你是谁
['1.py', '800']
10. 变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
Day7
Day6
for j in range(5):
for i in range(10):
# print("i==",i)
if i < 5:
# continue跳出本次循环 继续下一次循环
# break跳出所有循环
continue
# if i>8:
# break
if j > 3:
break
print(i)
'''
文件的操作
'''
# 3.0用open
# w=write 会覆盖原理的文本内容 注意备份
f = open("write.txt", "w")
f.write("This is 1,\n")
f.write("This is 2,\n")
f.write("This is 3,\n")
# 关闭文件流
f.close()
f = open("write.txt", "r")
# 读所有
# print(f.read())
# print(f.readlines())
# 按行读取 ,结果有空行 因为有\n
for line in f:
print(line)
# print(line),
if "3" in line:
print("3在此行")
else:
print(f.readline())
if "This is 3," == line:
print("This is 3,在此...")
# #读的模式下写会报错,写的模式下读会报错 追加内容用a append
f = open("write.txt", 'a')
f.write("追加\n")
f.close()
# w新建只写,w+新建读写,二者都会将文件内容清零(以w方式打开,不能读出。w+可读写)
# w+与r+区别:r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建
f = open("write.txt", "w+")
f.write("new line\n")
print(f.read())
f.close()
Day5
# 元组 用()表示。方法'count', 'index'
t = (1, 2, 3, 4)
print(dir(t))
print("类型", type(t))
print(t.count(2))
print(t.index(2))
# 元祖转为列表list(t)
print("元组转为数组", list(t))
a = ['a', 'b', 'c']
print("数组转为元组", tuple(a))
print("取除数,返回实际小数", 1 / 2)
print("取除数,返回实际小数", 1 / 3)
print("取整数,返回商的整数部分", 1 // 2)
print("取整数,返回商的整数部分", 5 // 2)
print("取次幂", 2 ** 4)
print("取乘数", 2 * 4)
print("取模 返回除法的余数", 6 % 3)
print("取模 返回除法的余数", 10 % 4)
print("取模 返回除法的余数", 11 % 2)
print("等于", 1 == 1)
print("不等于", 1 != 2)
print("与运算", 10 & 50) # 2
print("或运算", 10 | 50) # 28
print("异或运算 一真一假为真", 10 ^ 50) # 56
print("左移1位", 10 >> 1) # 5 10/2
print("左移2位", 10 >> 2) # 2 10/2/2=2
print("右移1位", 10 << 1) # 20 10*2
print("右移2位", 10 << 2) # 40 10*2*2=40
# 一个字节为8位,255 1kb=1024字节
name = ['alex', 'lose']
# if 'jack' not int name:
# print("不在name中")
print(type(name))
print(type(name) is list) # true
print(type(tuple(name)) is list) # false
print(type(3) is int) # true
运行结果
/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/bin/python3.7 /Users/qa/PycharmProjects/newStudy/day5.py
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
类型 <class 'tuple'>
1
1
元组转为数组 [1, 2, 3, 4]
数组转为元组 ('a', 'b', 'c')
取除数,返回实际小数 0.5
取除数,返回实际小数 0.3333333333333333
取整数,返回商的整数部分 0
取整数,返回商的整数部分 2
取次幂 16
取乘数 8
取模 返回除法的余数 0
取模 返回除法的余数 2
取模 返回除法的余数 1
等于 True
不等于 True
与运算 2
或运算 58
异或运算 一真一假为真 56
左移1位 5
左移2位 2
右移1位 20
右移2位 40
<class 'list'>
True
False
True
Process finished with exit code 0
Day4
name_list = [1, 4, 3, 'z', 'b', 'c', 'g', 'a']
# 切片 左开右闭。跳着切0:6:2隔一个切一个 最后的代表取隔开后的第几个
print("前2个", name_list[0:2])
print("第2个元素", name_list[1:2])
print("第2到6个", name_list[1:6])
print("跳着切0:6:2隔一个切一个 最后的代表取隔开后的第几个", name_list[0:6:2])
print("跳着切0:6:3隔一个切一个 最后的代表取隔开后的第几个", name_list[0:6:3])
print("最后1个:" + name_list[-1])
print("倒数第2个:", name_list[-2:-1])
# 最后2个 用-2:
print("最后2个:", name_list[-2:])
print("最后3个:", name_list[-3:])
# [:3]和[0:3]效果一致
print("前3个:", name_list[:3])
print("前3个:", name_list[0:3])
# 排序 按照asc码排序 如 abfed排序后为abcdef等。在3.0以上不能把数字、字符放在一起用排序sort的方法
b = name_list[0:3]
c = name_list[3:]
b.sort()
help(b.sort())
c.sort()
print("取出数字升序排序", b)
print("取出字符升序排序", c)
print("2个数组相加", b + c)
# 判断包含
if 4 in (b + c):
print("true")
e = b.extend(c)
print("2个数组相加 extend", e)
a = ['a', 'b']
name = "Alibaba"
# 拆分成字符
print("extend学习", a.extend(name))
m = range(0, 3)
print("m=", m)
print("类型type函数", type(m))
print(name_list)
# 索引值 按照编号去取
print(name_list[0])
print(name_list[1])
# 查询编号
print(enumerate(name_list))
# 查看数组的函数dir() 两个下划线的不需要记。只需要关注append count extend index insert pop remove reverse sort
# print(help(name_list))
print(dir(name_list))
# 追加相同的数组元素
name_list.append("c")
name_list.append('c')
# 打印列表元素为abccc
print(name_list)
# 打印第一个c的位置 index
print(name_list.index('c'))
# 统计c个数 结果为3
print(name_list.count('c'))
# 索引从0开始在第三个索引 也就是第二个位置插入元素
name_list.insert(2, 'cbefore')
print(name_list)
# 删除pop函数不传参代表删除一个字符 倒叙删除
name_list.pop()
print(name_list)
# 删除pop函数 传数字代表删除第n个索引位置 倒叙删除
name_list.pop(1)
print(name_list)
# 删除指定的元素字符
name_list.remove('cbefore')
print(name_list)
name_list.append('d')
name_list.append('z')
name_list.append('e')
name_list.insert(1, 'aAfter')
print(name_list)
# 字符串反转
name_list.reverse()
print(name_list)
name_list.append("!")
name_list.append("*")
name_list.append("_")
name_list.append("99")
name_list.append("95")
print(name_list)
# sort排序 数字排在前面 特殊字符 再是英文
# name_list.sort()
print(name_list)
# 在位置为3的索引位置插入字符串
name_list.insert(3, 'g')
name_list.insert(3, 'g')
name_list.insert(3, 'g')
name_list.insert(3, 'g')
print(name_list)
for i in range(name_list.count('g')):
name_list.remove('g')
print(name_list)
运行结果
/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/bin/python3.7 /Users/qa/PycharmProjects/newStudy/day04.py
前2个 [1, 4]
第2个元素 [4]
第2到6个 [4, 3, 'z', 'b', 'c']
跳着切0:6:2隔一个切一个 最后的代表取隔开后的第几个 [1, 3, 'b']
跳着切0:6:3隔一个切一个 最后的代表取隔开后的第几个 [1, 'z']
最后1个:a
倒数第2个: ['g']
最后2个: ['g', 'a']
最后3个: ['c', 'g', 'a']
前3个: [1, 4, 3]
前3个: [1, 4, 3]
Help on NoneType object:
class NoneType(object)
| Methods defined here:
|
| __bool__(self, /)
| self != 0
|
| __repr__(self, /)
| Return repr(self).
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
取出数字升序排序 [1, 3, 4]
取出字符升序排序 ['a', 'b', 'c', 'g', 'z']
2个数组相加 [1, 3, 4, 'a', 'b', 'c', 'g', 'z']
true
2个数组相加 extend None
extend学习 None
m= range(0, 3)
类型type函数 <class 'range'>
[1, 4, 3, 'z', 'b', 'c', 'g', 'a']
1
4
<enumerate object at 0x10283eea0>
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
[1, 4, 3, 'z', 'b', 'c', 'g', 'a', 'c', 'c']
5
3
[1, 4, 'cbefore', 3, 'z', 'b', 'c', 'g', 'a', 'c', 'c']
[1, 4, 'cbefore', 3, 'z', 'b', 'c', 'g', 'a', 'c']
[1, 'cbefore', 3, 'z', 'b', 'c', 'g', 'a', 'c']
[1, 3, 'z', 'b', 'c', 'g', 'a', 'c']
[1, 'aAfter', 3, 'z', 'b', 'c', 'g', 'a', 'c', 'd', 'z', 'e']
['e', 'z', 'd', 'c', 'a', 'g', 'c', 'b', 'z', 3, 'aAfter', 1]
['e', 'z', 'd', 'c', 'a', 'g', 'c', 'b', 'z', 3, 'aAfter', 1, '!', '*', '_', '99', '95']
['e', 'z', 'd', 'c', 'a', 'g', 'c', 'b', 'z', 3, 'aAfter', 1, '!', '*', '_', '99', '95']
['e', 'z', 'd', 'g', 'g', 'g', 'g', 'c', 'a', 'g', 'c', 'b', 'z', 3, 'aAfter', 1, '!', '*', '_', '99', '95']
['e', 'z', 'd', 'c', 'a', 'c', 'b', 'z', 3, 'aAfter', 1, '!', '*', '_', '99', '95']
Process finished with exit code 0
Day3
# 循环次数限制
input_num = 10
luck_num = -1
for i in range(3):
input_num = int(input("请输入数字"))
if input_num > luck_num:
print("大于预期")
elif input_num < luck_num:
print("小于预期")
else:
print("相等")
break
print(i)
else:
print("too many retrys")
# int 整型 -2**31到2**31-1
# long长整型 无限长 不会有数字溢出 会自动转换为long
a = 2 ** 64
print(a)
# 查看数据类型 type
# <class 'int'> <class 'float'>
print(type(a))
print(type(2.5))
# 布尔值 真或假 1或0
1 == True
if 1:
print(True)
elif 0:
print(False)
else:
print("???")
print(2 ** 3)
print(" abc dd ".strip("a"))
name = input("name:").strip("l")
age = int(input("age:"))
job = input("job:").strip()
print("信息----\nname:" + name + ",age:" + age + ",job:" + job)
# %s代表变量的值
print("信息 %s:\nName:%s \nAge:%s \nJob:%s" % (name, name, age, job))
msg = '''
信息:
name:%s
age:%d
job:%s
''' % (name, age, job)
print(msg)
'''
三个单引号代表段落注释
'''
Day2
# luck_num = 19
# 输入函数:2.7 row_input 和 3 input 一样
# 2.7的input输入什么类型找什么类型,输入数字则为数字,输入字符串则为字符串
# 3.0的input所有输入默认字符串。需要加int
# while True:
# input_num = int(input("请输入数字"))
# # input_num = raw_input("请输入数字") 输入6 比19大
#
# if input_num == luck_num:
# print("相等")
## 相等则结束循环
# break
# elif input_num > luck_num:
# print("大于预期")
# else:
# print("小于预期")
# # 优化
# luck_num = 19
# input_num = 1
#
# guess_count = 0
# # 输入次数限制
# while luck_num != input_num and guess_count < 3:
# input_num = int(input("请输入数字"))
# if input_num > luck_num:
# print("大于预期")
# elif input_num < luck_num:
# print("小于预期")
#
# guess_count += 1
#
# print("相等")
# 优化 增加重试次数小于3次的条件
luck_num = 19
input_num = 1
guess_count = 0
# 输入次数限制
while guess_count < 3:
input_num = int(input("请输入数字"))
if input_num > luck_num:
print("大于预期")
elif input_num < luck_num:
print("小于预期")
else:
print("相等")
break
guess_count += 1
# 常量拼接变量用, java用的是+
print("guess_count==", guess_count)
else:
print("too many retrys")
Day1
name = "abc"
age = 10
print(name + "的年龄=", age)
print(age)
a = 3
print(id(a))
b = a
a = 5
print(id(a))
print(id(b))
print(a)
print(b)
print(a)
print(111)
n = "jack"
# python3
# name=input("请输入你的名字:")
# python2.7
# name=raw_input("请输入你的名字:")
print(name)
a = 5
print(eval('a'))
sex = input("请输入性别")
if sex == "man":
# Python要求强制缩进
print("男人")
elif sex == "woman":
print("女人")
else:
print("未知")
待续。。。